1

我刚刚将我的功能性 codeigniter 项目转移到了一个新的网络托管服务提供商,现在我遇到了使用标准 .htaccess mod-rewrite 从 URL 中删除 index.php 的挑战。这是运行良好的 .htaccess :

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我发现了这个讨论,但我没有对 apache 服务器的 root 访问权限来进行建议的配置更改。

使用上面提供的 .htaccess 文件,

任何建议表示赞赏。

4

2 回答 2

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]
于 2012-11-08T17:43:44.513 回答
0

您的问题不是很清楚,但是像这样的 mod_rewrite 规则的一个常见问题是某些服务器需要将请求作为查询传递。即您需要将最后一行更改为:

RewriteRule ^(.*)$ index.php?/$1 [L]
于 2012-11-08T18:00:40.383 回答