0

平台:Windows 7 Pro 64 位

我的开发机器上安装了 Apache 2.2(基本上是 WAMP 设置)。我在主要的 htdocs 中安装了几个基于 Code Igniter 的网站。但是,我在处理主 htdocs 目录下的子目录时遇到了困难。

这是我遇到 .htaccess 问题的地方(位于 htdocs 下的 /CILearn 目录中):

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

子目录是 htdocs 下的 CILearn。所以 URL 看起来像这样:

    localhost/CILearn
    localhost/CILearn/site
    localhost/cilearn

现在这可行,并且“站点”是一个控制器,因此 index.php 的重定向正在工作。

这不起作用:

    localhost/cilearn/site

有人可以解释这些规则应该在哪里以及为什么不处理案件吗?

4

2 回答 2

1

消除

RewriteBase /CILearn/

并再次测试它,请参阅此页面http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase了解更多信息RewriteBase

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /CILearn/index.php/$1 [NC,L]   
于 2013-03-27T08:51:06.857 回答
1

当您的文件系统路径区分大小写时,可能会发生这种情况。您在这里有两个选择。

mod_speling在根目录 .htaccess 中使用(不是/CILearn/.htaccess)

CheckSpelling on
CheckCaseOnly on

确保mod_speling使用类似的东西激活

LoadModule speling_module /path/to/apache2/modules/mod_speling.dll

或者,您可以RewriteRulecilearn. 这必须在根目录 .htaccess 中完成

RewriteEngine on
RewriteRule ^cilearn/(.*) /CILearn/$1 [NC,L]
于 2013-03-27T09:25:16.760 回答