我希望在查询字符串中有s=stick_path
或s=stick_relative
时允许访问我的网站,否则拒绝访问。例如,允许访问www.domain.com/?s=stick_path但拒绝访问www.domain.com/?s=ck_relative或www.domain.com/?s=action_path。
我尝试过简单的例子,例如www.domain.com/?s=stick_path,但它似乎不起作用。
RewriteCond %{QUERY_STRING} !^s=stick_path$
RewriteRule ^.* - [F,L]
我认为如果s参数存在两次,我可以欺骗.htaccess规则,例如www.domain.com/?s=stick_path&s=action_path
更新
.htaccess中缺少RewriteEngine ON
。
答案 0 :(得分:2)
当我尝试转到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
位于查询字符串中的任何位置,则此方法有效。