1

メンテナンスモードでの作業に最適な特定のIPアドレスへのアクセスを許可するApachehtaccessのルールセットがあります。ただし、これにより、wordpress.comやgoogle.comなどの一部のリファラーがサイトにアクセスできなくなります。現在のルールセットは次のとおりです。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123

RewriteCond %{HTTP_REFERER} wordpress\.com [NC, OR]
RewriteCond %{HTTP_REFERER} google\.com [NC]
RewriteCond %{HTTP_REFERER} ^(.*)$
RewriteRule .* /maintenance.html [R=302]

RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=302,L]

上記のルールセットは機能しますが、不具合があると完全ではありません。どういうわけかサイトはどのIPからでもアクセス可能であり、リファラーは問題外です。特定のIPおよび特定のリファラーからサイトにアクセスできるルールセットが必要です。

4

1 に答える 1

1

私には線のように見えます

RewriteCond %{HTTP_REFERER} ^(.*)$

何にでも一致し、残りの条件をミュートにします。その線は何のためにあるのですか?

また、あなたがしていることはあなたの目的には問題ないかもしれませんが、偽のリファラー[sic]ヘッダーを使用してリクエストを作成することは難しくないことに注意してください。

また、これらの特定のリファラーを許可し、残りを「maintenance.html」にバンプすることが目標である場合は、リファラーの一致条件を否定する必要があると思います。しかし、私はここであなたの意図を誤解しているかもしれません。

于 2012-12-26T19:30:54.023 に答える