Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 为什么这条规则不起作用?_.htaccess_Mod Rewrite_Cookies_Url Rewriting - Fatal编程技术网

.htaccess 为什么这条规则不起作用?

.htaccess 为什么这条规则不起作用?,.htaccess,mod-rewrite,cookies,url-rewriting,.htaccess,Mod Rewrite,Cookies,Url Rewriting,我有一个.htaccess重写规则,如果用户没有devcookie,它会将用户重定向到/coming\u soon/,但出于某种原因,即使我有cookie,它也会将我重定向。这条规则昨晚运行正常,直到我添加了另一个条件,允许对我的谷歌网站管理员工具验证文件的请求通过。以下是my.htaccess的内容: RewriteEngine On RewriteBase / RewriteCond %{HTTP_COOKIE} !^\dev=$ [NC] RewriteCond %{REQUEST_URI

我有一个.htaccess重写规则,如果用户没有
dev
cookie,它会将用户重定向到
/coming\u soon/
,但出于某种原因,即使我有cookie,它也会将我重定向。这条规则昨晚运行正常,直到我添加了另一个条件,允许对我的谷歌网站管理员工具验证文件的请求通过。以下是my.htaccess的内容:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^\dev=$ [NC]
RewriteCond %{REQUEST_URI} !/google********.html
RewriteRule ^(.*)$ coming_soon [QSA,L]
老实说,我并不真正理解重写规则的语法,其中大部分我只是从互联网上搜集的,这使得调试变得非常困难


我在本地设置了cookie并验证了它的存在,所以有人知道我做错了什么吗?

您有一个错误的反斜杠:

# right hree ----------------v
RewriteCond %{HTTP_COOKIE} !^\dev=$ [NC]
这使得它在那里期望一个数字而不是一个“d”

还要注意的是,只有当只有一个cookie并且它正好是
dev=
时,这才有效。您可能希望通过将正则表达式更改为:

RewriteCond %{HTTP_COOKIE} !dev=(.*) [NC]