htaccess使用%{QUERY_STRING}和%{HTTP_REFERER}来保留查询var

时间:2014-07-10 20:21:43

标签: wordpress .htaccess mod-rewrite

我正在构建一个有两个不同版本的wordpress网站。支柱网站和非支持网站。

转到http://example.com/?prop=1可访问道具网站。进入网站后,我需要任何内部链接来维护prop查询变量。我想用查询var而不是会话var或cookie来做这件事,因为在任何时候,用户都应该能够从url中取出prop = 1来访问常规站点。但只要用户在prop站点中,他们单击的任何链接都应保留该prop变量。

因此,如果他们在example.com/?prop=1并点击example.com/help的链接,他们将被带到example.com/help?prop=1

我对htaccess规则知之甚少,但这是我到目前为止的事情

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_REFERER} !^prop=1.*$ [NC]
RewriteRule (.*) http://amex/hello/$1 [L,R]

这不起作用,但实际上,我想检查引用URL中是否存在查询,并将其传递到他们试图去的任何地方。还用QUERY_STRING查看类似的内容,但无法弄清楚

RewriteCond %{QUERY_STRING} ^prop=1$ [NC]

1 个答案:

答案 0 :(得分:0)

尝试在RewriteBase /行下面添加此内容:

RewriteCond %{QUERY_STRING} !prop=
RewriteCond %{HTTP_REFERER} (^|&)prop=([^&]+)
RewriteRule ^(.*)$ /$1?prop=%2 [L,R,QSA]