有人可以帮我弄这个吗。 我感觉好像我已经撞了我的头靠墙超过2小时了。
我已经在我的机器上安装了Apache 2.2.8 + PHP 5.2.6,下面的代码使用.htacces工作正常,没有错误。
RewriteEngine on RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico) RewriteRule ^(.*)$ /index.php/$1 [L]
我的托pipe服务提供商服务器上的相同的代码给我一个404错误代码和输出只:没有input文件指定。 index.php在那里。 我知道他们已经安装了Apache(无法在任何地方find版本信息),他们正在运行PHP v5.2.8。
我在Windows XP 64位,他们正在运行一些Linux和PHP在CGI / fastcgi模式。 任何人都可以build议可能是什么问题?
PS。 如果这对CodeIgniter使用友好的URL很重要。
原来我需要RewriteBase:
RewriteEngine on RewriteBase / RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico) RewriteRule ^(.*)$ /index.php/$1 [L]
我遇到了同样的问题,试图为我的CodeIgniter项目configuration一个友好的URL。 我终于弄明白了。 我们来看看我的apache2configuration:
<Directory /home/hai/www> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
问题是在AllowOverride None的那一行。 将None更改为All并且可以正常工作:
<Directory /home/hai/www> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
更新:我的系统信息:
顺便说一句,我是网页devise,PHP和CodeIgniter的新手(我刚刚开始上周的PHP和CodeIgniter昨天),所以请在我的答案中指出任何错误。
更新2:如果以后,您将得到错误代码500而不是404.这意味着您没有启用重写模块。 发出以下命令来修复它:
$ sudo a2enmod rewrite