将codeigniter项目移动到新的托管服务提供商 - .htaccess和index.php

时间:2012-11-08 17:40:46

标签: .htaccess codeigniter mod-rewrite

我刚刚将我的功能性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文件,

任何建议都表示赞赏。

2 个答案:

答案 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]