2

s=stick_pathクエリ文字列がある場合、またはクエリ文字列内にある場合はサイトへのアクセスを許可し、s=stick_relativeそうでない場合はアクセスを拒否します。たとえば、の場合はアクセスを許可しますが、またはのwww.domain.com/?s=stick_path場合はアクセスを拒否します。www.domain.com/?s=ck_relativewww.domain.com/?s=action_path

のような簡単な例を試しましwww.domain.com/?s=stick_pathたが、うまくいかないようです。

RewriteCond %{QUERY_STRING} !^s=stick_path$
RewriteRule ^.* - [F,L]

.htaccesssパラメータが2回存在する場合、ルールをだますことができると思います。www.domain.com/?s=stick_path&s=action_path

4

2 に答える 2

3

に行こうとすると、あなたが持っているルールが機能しますがhttp://localhost/?s=stick_path、どこでもクエリ文字列をチェックできるようにしたい場合は、次のことを試してください。

RewriteCond %{QUERY_STRING} !(^|&)s=stick_path(&|$) 
RewriteCond %{QUERY_STRING} !(^|&)s=stick_relative(&|$)
RewriteRule ^.* - [F,L]

これは、s=stick_pathまたはs=stick_relativeがクエリ文字列のどこかにある場合に機能します。

于 2012-12-18T07:53:03.733 に答える