我是 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/