CodeIgniter htaccess + awstats коллизия, защищенная паролем - PullRequest
1 голос
/ 17 октября 2011

Я некоторое время искал в Интернете и не смог найти правильный ответ для следующей проблемы:

У меня есть рабочий .htaccess для приложения codeigniter (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 показывает ошибку 404, когда я пытаюсь получить доступ к mydomain / awstats. как это можно исправить?

Примечание: mydomain.com / MY_USER только для примера: -)

1 Ответ

0 голосов
/ 18 октября 2011

Вместо этого:

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 и т. Д.).

...