使用mod_rewrite保留引用URL的参数

时间:2014-02-07 13:51:10

标签: apache .htaccess mod-rewrite

www.mysite.com/foo/article?id=8888&area=9999

在上面的页面上,大约有20个链接。单击其中一个链接后,用户将被带到:

    www.mysite.com/foo/a_new_page

但我想要发生的事情(使用.htaccess文件)是在点击链接时,引用URL中的参数会被保留并附加,因此单击相同的链接会将它们带到:

    www.mysite.com/foo/a_new_page?id=8888

但我无法弄明白。我知道我需要使用QSA来附加它们而不是覆盖任何可能设置的东西。但我无法弄清楚如何测试引用URL上是否存在参数并附加它以便通过不同的页面保留参数。

任何想法如何?

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteEngine On
RewriteCond %{QUERY_STRING} !^id=
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?mysite\.com/.*\?id=([^&]+)
RewriteRule ^foo(.*)$ foo/$1?id=%2 [L]