0

我是 CI 的新手,我正在尝试从 URL 中删除烦人的“index.php”。这是我正在使用的 .htaccess:

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

如您所见,我必须使用QUERY_STRING才能使新 URL 工作(注意 index.php 后面的问号)。当我尝试使用PATH_INFO(即没有问号)时,我只会得到No input file specified错误。

这很好,QUERY_STRING如果必须的话我可以使用,但我不明白这个问题,因为我PATH_INFO在开始玩重写之前使用得很好 - 即默认的“example.com/index.php /controller/function" 正在工作,并且使用 PATH_INFO AFAIK。

有谁知道为什么 htaccess 在我的示例中会破坏 PATH_INFO ?对不起这个愚蠢的问题。

4

1 回答 1

2

尝试这个:

RewriteEngine   on
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule     .* index.php/%{REQUEST_URI}   [L]

上面的重写规则似乎适用于我目前正在开发的应用程序......它们传递正确的 GET 请求以及正确的 PATH_INFO 值。

于 2012-05-01T04:54:50.527 回答