我有一个.htaccess RewriteRule,如果他们没有/coming_soon/
cookie,会将用户重定向到dev
,但由于某种原因,即使我有cookie,它也会重定向我。此规则昨晚正常运行,直到我添加了另一个条件,允许我的Google网站站长工具验证文件的请求通过。以下是我的.htaccess的内容:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^\dev=$ [NC]
RewriteCond %{REQUEST_URI} !/google********.html
RewriteRule ^(.*)$ coming_soon [QSA,L]
说实话,我并不真正理解RewriteRules的语法,其中大部分都是我从互联网上捡到的,这使得它很难调试。
我在本地设置了cookie并验证它是否存在,所以有人知道我做错了吗?
答案 0 :(得分:1)
你有一个迷失的反斜杠:
# right hree ----------------v
RewriteCond %{HTTP_COOKIE} !^\dev=$ [NC]
这使得它在那里期待一个数字而不是“d”。
另请注意,这仅适用于只有1个Cookie并且恰好是dev=
的情况。您可能希望通过将正则表达式更改为:
RewriteCond %{HTTP_COOKIE} !dev=(.*) [NC]