php - htaccess 不在 codeigniter 中重定向

标签 php .htaccess codeigniter

我是 php 和 codeigniter 的新手。我正在做一个在服务器 abcd.com 上运行的项目,我正在使用这样的 htaccess 代码

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

现在我的项目已经转移到另一台服务器 192.000.000.000。当用户登录时,我可以访问登录页面, session 正在设置并且正在重定向到 192.000。 000.000/myproject/user 在这里我收到 404 错误

我在config.php中设置的base_url是这样的

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']); 

$config['index_page'] = '';

我的 WINSCP 项目结构

old one :  /home/my_org/public_html/prjFolder
new one :  /var/www/html/prjFolder

我的 .htaccess 文件是这样的

system/
application/
user_guide/
index.php
.htaccess

如果有人找到解决方案,请帮助我..

最佳答案

您提到您的项目已移至另一台服务器。您是否检查过虚拟主机中是否设置了 AllowOverride 指令(假设您使用 Apache 作为 Web 服务器)?如果禁用,Apache 将简单地忽略您的 .htaccess 文件。快速测试是在您的 .htaccess 文件中加入一些毫无意义的内容,这肯定会产生错误。如果您没有收到服务器错误,则您的 .htaccess 文件将被忽略。

链接:http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

另一个原因可能是没有启用 mod_rewrite 模块(再次假设您使用的是 Apache)。你没有说你粘贴的 .htaccess 代码是否是你完整的 .htaccess 文件,所以我不知道它是否正在检查该模块是否存在。一个简单的测试来检查这是否是原因,正在尝试重写的结果 url:192.000.000.000/index.php/myproject/user

链接:http://httpd.apache.org/docs/current/mod/mod_rewrite.html

我假设您的 .htaccess 文件中没有任何错误,因为您似乎说它在移动之前工作正常。

关于php - htaccess 不在 codeigniter 中重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778319/

相关文章:

php - 使用 htaccess 和 php 创建假的子目录并保持现有目录不变

php - 获取 .htaccess 引导的文件的文件名?

php - codeigniter session 在本地主机上工作但不在服务器上工作并且也坐

php - Codeigniter - 检查值是否已存在于数据库中 $result->num_rows == 0 不起作用

php - 在 CodeIgniter 中使用模型的数据库问题

javascript - 在 Highcharts 中指定区域中的图案时如何使用默认颜色

javascript - 从选择框中获取所有选项 NOT MULTIPLE 并将它们传递给 php 以插入 mysql

php - 使用表 1 中的信息从表 2 中获取信息

php - 获取表格内列中显示的数据总数

php - CodeIgniter URL 后缀 .html 自动为所有 URL