不寻常的重写行为


Unusual RewriteCond behavior

我在.htaccess文件中有这些行:

RewriteCond %{HTTP_COOKIE} ^.*ddl=([^;]+);'sddc=([^;]+).*$ [NC]
RewriteCond %1 =%2
RewriteRule .* index.php?ddc=%2&ddl=%1 [L]

%{HTTP_COOKIE} 科奈特斯ddl=123456; ddc=123456 .

当我浏览 URL 时,它无法按上述预期工作。但是如果我将第二行更改为RewriteCond %1 !=%2它将变为index.php.在该文件中,我做了一个var_dump($_GET),输出是这样的:

array(2) { ["ddc"]=> string(6) "123456" ["ddl"]=> string(6) "123456" }

我的问题是,为什么RewriteCond %1 =%2不能正常工作!

你不能

RewriteCond中使用%1%2等。尝试以下代码进行反向引用:

RewriteCond %{HTTP_COOKIE} ^.*ddl=([^;]+);'sddc='1.*$ [NC]
RewriteRule ^ index.php?ddc=%2&ddl=%1 [L]