我刚刚将我的功能性codeigniter项目移动到新的Web托管服务提供商,现在我正在使用标准的.htaccess mod-rewrite从URL中删除index.php。这是.htaccess工作正常:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我发现了this讨论,但我没有对apache服务器的root访问权限,无法进行建议的配置更改。
使用上面提供的.htaccess文件,
任何建议都表示赞赏。
答案 0 :(得分:0)
如果你真的必须同样接受两种形式的URL,那么你需要两个RewriteRules。一旦接受变体,然后'index.php'部分和一个没有。
这样的事情:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index\.php/(.*)$ index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
答案 1 :(得分:0)
您的问题不是很清楚,但像这样的mod_rewrite规则的一个常见问题是某些服务器需要将请求作为查询传递。即您需要将最后一行更改为:
RewriteRule ^(.*)$ index.php?/$1 [L]