htaccess没有重定向到codeigniter

时间:2014-02-14 11:35:16

标签: php .htaccess codeigniter

我是php&的新手codeigniter.i正在处理一个在服务器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.我可以访问登录页面,当用户登录时会话已经设置并且它正在重定向到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

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

3 个答案:

答案 0 :(得分:2)

您提到您的项目已移至另一台服务器。您是否在虚拟主机中设置了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文件中没有任何错误,因为您似乎表示它在移动之前工作正常。

答案 1 :(得分:0)

我认为您的重写规则所指向的目的地问题

RewriteRule ^(.*)$ index.php/$1 [L,QSA]

如果您通过网址访问您的项目

192.000.000.000/myproject/user

重写规则会将此更改为

192.000.000.000/index.php/myproject/user

您需要修改重写规则以从网址中排除 myproject / user 以传递给 index.php ,或者您只需删除 .htaccess 如果这只是一个开发机器,我隐藏 index.php 的原因是这个url看起来很漂亮。拥有它在开发环境中根本不会受到伤害。

答案 2 :(得分:0)

我找到了解决方案,这是apache rewrite_module的问题。我改变了我的httpd.conf文件,现在它完美无缺。

AllowOverride None更改为AllowOverride All

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

并使用putty # service httpd restart

重新启动Apache守护程序

参考网址: - http://dev.antoinesolutions.com/apache-server/mod_rewrite