1

我在我的网络服务器 ( http://sample.org/myproject/ ) 上安装了一个 CodeIgniter 项目。

对于 CodeIgniters 路由规则(例如index.php/controller/methode),我在myproject使用 RewriteEngine 的文件夹中编写了一个 .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 之前的时间有关?

4

1 回答 1

0

由于myproject实际上是您的真实目录,$DOCUMENT_ROOT并且您RewriteCond %{REQUEST_FILENAME} !-d在 .htaccess 中有(意味着如果请求不是针对目录则执行),因此您的 RewriteRule 甚至没有触发。

用这个替换你现有的代码:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php/$0 [NC,L]
于 2013-02-13T09:00:46.233 回答