1

我在网上搜索了一段时间,找不到以下问题的正确答案:

我有一个适用于 codeigniter 应用程序的工作 .htaccess(已删除 index.php),如下所示:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

并且 /awstats/.htaccess 具有以下规则:

Options +ExecCGI
AddHandler cgi-script pl
DirectoryIndex awstats.pl 

AuthUserFile /home/MY_USER/domains/mydomain.com/public_html/awstats/.htpasswd
AuthType Basic
AuthName "AwStats Protection"

<LIMIT GET POST>
require valid-user
</LIMIT> 

当我没有使用带密码保护的 awstats 时 -> 一切正常。为 awstats 启用密码保护后 -> CI 在我尝试访问 mydomain/awstats 时显示 404 错误。那怎么解决?

注意:mydomain.com / MY_USER 只是为了示例:-)

4

1 回答 1

0

而不是这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

你可以这样做:

RewriteCond $1 !^(index\.php|favicon\.ico|favicon\.png|crossdomain\.xml|robots\.txt|images|css|js|awstats)
RewriteRule ^(.*)$ /index.php/$1 [L]

因此,您可以明确授予对不需要通过 CI 前端控制器的任何内容的访问权限。这是一种更安全的技术,但需要您明确添加每个文件和目录(例如图像、css 等)。

于 2011-10-18T17:25:43.910 回答