0

我在 WAMP 上使用 CodeIgniter。Apache 的 Mod_Rewrite 模块被加载。我的 CI 项目位于C:\wamp\www\store 我已从 Codeigniter URL 文档(此处)复制了重写规则:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

我试图打开的链接是在localhost/store/city 我看来,这条规则永远不会触发。当我尝试打开上述地址时,我收到了我的浏览器(不是 CI)的默认 404 并且似乎没有发生重写。如果我加载localhost/store/index.php/city正确的页面加载。为什么我的规则不会触发?

4

4 回答 4

3

尝试改变

RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteRule ^(.*)$ ./index.php/$1 [L]

您的方法试图从基础加载 URL

localhost/index.php/city
于 2013-05-02T06:55:54.543 回答
0

在您的 .htaccess 文件中使用此代码:

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

这肯定会帮助你:)

于 2013-05-02T07:10:24.777 回答
0

在 application/config/config.php 中,您必须将索引页面设置为空白,例如:

$config['index_page'] = '';
于 2013-05-02T12:46:15.113 回答
0

我将此规则放在文件中:

RewriteRule (.*) http://test.com

事实证明,重写规则根本没有触发。需要移动 .HTaccess 文件。CI 将其放置在 Application 文件夹中。我把它拖出父文件夹,现在一切正常。奇怪的事情。

于 2013-05-03T15:49:36.947 回答