1

次のコードは正常に機能します。

RewriteCond %{HTTP_REFERER} !^http://superwebx.com/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F]

しかし、私が管理しているいくつかのサイトで汎用スクリプトを提供したいのですが、取得しようとして失敗します

RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F]
4

2 に答える 2

1

正規表現内で変数を使用することはできません。次のように RegEx 後方参照を使用することで、これを回避できます。

RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC]
RewriteCond %1#%{HTTP_HOST} !^(.+)#\1$
RewriteRule \.(jpe?g|gif|bmp|png|swf|css)$ - [F]

(#は単に境界として使用されていることに注意してください。ドメイン名で使用されていない任意の文字である可能性があります。)

于 2012-09-03T11:58:55.860 に答える