1

しばらくウェブを検索しましたが、次の問題の正しい答えが見つかりませんでした。

私は次のように見えるcodeigniterアプリ(index.phpが削除されました)の動作する.htaccessを持っています:

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のパスワード保護を有効にした後->mydomain/ awstatsにアクセスしようとすると、CIに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 に答える