htaccess:维护查询var,如果它存在于引用URL中

时间:2014-07-12 18:50:53

标签: wordpress .htaccess mod-rewrite

尝试在我的wordpress安装上制定一些htaccess规则,以便在用户点击整个网站的链接时维护查询变量。

基本上,如果用户在example.com/?prop=1并点击链接,如果链接是example.com/posts,则应自动转到example.com/posts?prop=1。只需检查引用网址是否包含prop var,如果它确实将其附加到他们试图访问的网址上。

我现在只是从我的wordpress永久链接结构:

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

我正在尝试添加类似这样的内容,但它并不像我想要的那样工作:

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

我似乎无法使HTTP_REFERER规则起作用。每次我在例如example.com/?prop=1?

的网址上点击链接时是否应该调用它

1 个答案:

答案 0 :(得分:1)

你的正则表达式似乎不正确。

试试这段代码:

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]