2016-04-08 48 views
0

これは初めて.htaccessを編集した時です。状況によっては、いくつかのIPアドレス以外の人物のWebサイトへのアクセスを制限し、他の人を特定のページにリダイレクトする必要があります。私は.htaccessファイルに次のコードを使用していますことを実行します。.htaccessを編集した後に背景画像が消える

RewriteEngine on 
RewriteCond %{REMOTE_ADDR} !XXX.XXX.XXX.XXX 
RewriteRule (.*) index.html [QSA,L] 

を、私は、このファイルでIPを変更すると、問題が始まる - index.htmlを中に使用され、その内部CSSで記述された背景画像を表示されなくなります。私はChromeとFirefoxでこれをテストしました.Firefoxでは、IPが元のものに変更されると背景イメージが再び現れ、ChromeではIPが元に戻っても再現されません。私は誰かが私を助けることができることを願っています。

よろしくお願いいたします。

+0

[htaccess css images](00000000)の可能な複製 –

+1

もちろん、_everything_をindex.htmlに書き換えているので、それは "消えます"。ブラウザが画像に対して行う要求が含まれます。したがって、ブラウザは画像データを期待していますが、代わりにHTML文書を取得します。画像として表示することはできません。 – CBroe

+0

この問題の原因を明らかにしていただき、ありがとうございます。私はそれが問題かもしれないと思った。このコードを修正して、ルートディレクトリのイメージの例外が含まれるように助けてください。大変感謝しています。 – spektro37

答えて

0

書き換えは強力なテクニックですが、書き直しには多くの注意点があります。また、書き直しは比較的複雑です。ここで、解決策はmod_rewriteをまったく使用しないことです。 Apacheのmod_authz_hostモジュールでは、Requireディレクティブを使用して、リソースにアクセスできるIPアドレスを指定できます。

Requireが満たされない場合に特定のページを表示する必要がある場合は、トリガーされるエラー403(禁止)に対してErrorDocumentを指定してください。

エラーページがその後、他のリソースにアクセスする必要がある場合は、IP制限をバイパスするとRequireディレクティブ使用して許可する必要があります。

Require ip XXX.XXX.XXX.XXX 
ErrorDocument 403 /index.html 
<Files "specific_image.png"> 
    Require all granted 
</Files> 
:ここ

をあなたの.htaccessファイルは次のようになります方法です

Apacheでリダイレクトが発生することに注意してください。あなたは、外部リダイレクトをしたいし、ユーザーを持っている場合は、ブラウザのアドレスバーに実際のindex.htmlファイルを持っているファイルを明示的に許可されなければならないので、設定は少し複雑になる

Require ip XXX.XXX.XXX.XXX 
ErrorDocument 403 %{REQUEST_SCHEME}://%{HTTP_HOST}/index.html 
<Files "index.html"> 
    Require all granted 
</Files> 
<Files "specific_image.png"> 
    Require all granted 
</Files> 

index.htmlファイルの絶対URLをハードコードするのを避けるために変数を使用することに注意してください。外部リダイレクトを開始するには、ここで完全なURLを使用する必要があります。

+0

'Require ip XXX.XXX.XXX.XXX' - それのように' Require'を使うことはできません - quote apacheマニュアル、_ "このディレクティブは、認証されたユーザがリソースにアクセスできるかどうかを選択します。"要求元のクライアントのIPアドレスで、['Allow'](http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#allow)指示文を使用する必要があります。 – CBroe

+1

@CBroeそれは年齢のためにリリースされて以来、私はApache 2.4を想定しています。 2.2リリース以来、構成が大きく変更されています。 – SirDarius

+0

私は訂正しました。私は、この指令の範囲が2.4で大幅に変更されたことに気づいていませんでした。 – CBroe

関連する問題