平台: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
现在这个工作,“site”是一个控制器,所以index.php的重定向工作正常。
这不起作用:
localhost/cilearn/site
有人可以解释这些规则应该在哪里以及为什么不处理案件?
答案 0 :(得分:1)
删除
RewriteBase /CILearn/
再次测试,有关RewriteBase
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /CILearn/index.php/$1 [NC,L]
答案 1 :(得分:1)
当文件系统路径区分大小写时,可能会发生这种情况。你有两个选择。
在根目录.htaccess中使用mod_speling
(不 /CILearn/.htaccess)
CheckSpelling on
CheckCaseOnly on
请确保使用
之类的内容激活mod_speling
LoadModule speling_module /path/to/apache2/modules/mod_speling.dll
或者,您可以添加RewriteRule
来修复cilearn
的案例。这必须在根目录.htaccess
RewriteEngine on
RewriteRule ^cilearn/(.*) /CILearn/$1 [NC,L]