2

使用安装在 Windows 7 上的 Apache2,我使用下面的 htaccess 配置从 codeigniter url 中删除 index.php:

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

有人可以告诉为什么上面的配置在 ubuntu 上不起作用。我已经使用sudo a2enmod rewrite启用了 mod 重写。谢谢

4

1 回答 1

2

这可能是因为 ubuntu 服务器设置为传递 PATH_INFO,这意味着您不需要查询字符串。您可能只需?从您的规则中删除它,它应该可以工作:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
# no query string ----------^
于 2013-08-21T19:23:24.030 回答