我已在我的网络服务器(http://sample.org/myproject/)上安装了CodeIgniter项目。
对于CodeIgniters路由规则(例如index.php/controller/methode
)我在使用RewriteEngine的myproject
文件夹中编写了一个.htaccess-File。此文件的构建如下:
AuthType Basic
AuthUserFile /home/www/myuser/html/myproject/.htpasswd01
AuthName "secured area"
require valid-user
Options -Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
现在问题我得到了:如果我正常调用页面(http://sample.org/myproject/index.php/somestuff)它工作正常,但目前我只直接调用目录(http://sample.org/myproject/),这只会起作用某些时候。有时它可以工作(在显示此错误的某个时间之后),有时它将无法工作。
这是否与浏览器重新读取.htaccess的时间有关?
答案 0 :(得分:0)
由于myproject
实际上是$DOCUMENT_ROOT
下的真实目录,并且您的.htaccess中有RewriteCond %{REQUEST_FILENAME} !-d
(表示请求不是针对目录执行)因此您的RewriteRule不是甚至开火。
用以下内容替换现有代码:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php/$0 [NC,L]