我设置.htaccess文件以防止访问文件夹中的任何内容,除非设置了某个cookie。问题是,cookie名称可能会因某个ID号附加到其末尾而有所不同,我无法控制它。
我设置的cookie可以是(frm_form30,frm_form31等)。
这是我到目前为止的.htaccess代码:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*\bfrm_form(?:\d*\.)?\d+*.*$ [NC]
RewriteRule .* / [NC,L]
我用这个:
\bfrm_form(?:\d*\.)?\d+
作为将检测以frm_form开头并以两位数字结尾的任何cookie的正则表达式。任何人都可以指出我正确的方向或告诉我,我做错了什么?
如果我使用完整的cookie名称(例如frm_form30),代码就可以工作,所以文件的其余部分 - 我认为 - 没问题。
非常感谢您的帮助!
答案 0 :(得分:1)
要检测两位数字,请使用\bfrm_form\d\d
或\bfrm_form\d{2}
。
你的正则表达式匹配任何数字,小数部分与否。
简化表达式并发送A Forbidden标头而不是重定向:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !\bfrm_form\d\d\b [NC]
RewriteRule .* [F]
答案 1 :(得分:0)
以下是我解决这个问题的方法:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*frm_form+(?:\d*\.)?\d+.*$ [NC]
RewriteRule .* http://domain.com [NC,L]
如果您认为有更好的方法,请告诉我。谢谢!