【发布时间】:2013-07-10 06:18:49
【问题描述】:
所以我在使用 .htaccess 文件和 codeigniter 时遇到了一个奇怪的问题。我的本地机器上有一个 wamp 服务器,它可以按预期工作。我有像 wamp/www/my_app 这样的文件夹,在 my_app 文件夹中我有像这样的 .htaccess 文件:
ErrorDocument 404 /index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /my_app/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
在我的 config.php gile 我有:
$config['base_url']='';
$config['index_page']='';
$config['uri_protocol']='AUTO';
所以我尝试将该项目上传到链接上的 debian 服务器,例如 apps.myserver.com/my_app。我将我的应用程序放入文件夹 var/www/my_app。但诀窍是它不起作用。
我尝试将 uri_protocol 更改为所有 5 个选项,但没有更改。我还尝试将 .htaccess 文件放入 var/www 而不是 var/www/my_app 但也没有任何变化。
当我尝试访问没有 index.php 前缀的控制器时,我不断收到那个愚蠢的 404 Not Found 错误。
有什么想法吗?
编辑:我检查了服务器上的 phpinfo,发现 mod_rewrite 在加载的模块中。
【问题讨论】:
-
首先检查你的服务器上是否启用了 mod_rewrite,从顶部和底部发送删除此 ErrorDocuemnt 并注释掉 RewriteBase 并检查
-
所以我注释掉除第 3 行和第 7 行之外的所有行,没有任何反应。这是否意味着我在服务器上没有重写模块,还是意味着它没有读取我的 .htaccess 文件?
-
这是 CI 文档 RewriteEngine on RewriteCond $1 上的最小 htaccess 代码!^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L ]
-
我完全尝试了你给我的代码,但没有效果,我检查了,所以我可以确认 mod_rewrite 已加载到服务器上。
-
如果您有 wamp 服务器,只需在浏览器上键入 localhost,您将 phpinfo() 链接单击它,如果未加载,则在加载的模块下找到 mod_rewrite,然后您必须在您的 wamp 服务器中启用它,它真的很容易
标签: .htaccess codeigniter