不寻常的RewriteCond行为

时间:2013-09-19 14:08:57

标签: php .htaccess rewrite

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

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

%{HTTP_COOKIE}同意ddl=123456; ddc=123456

当我浏览网址时,它无法正常运行。但如果我将第二行更改为RewriteCond %1 !=%2,则会转到index.php。在那个文件中,我做了一个var_dump($_GET),输出是这样的:

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

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

1 个答案:

答案 0 :(得分:3)

您无法在%1中使用%2RewriteCond等。尝试使用此代码进行反向引用:

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