Apache 使用mod_rewrite保留引用URL的参数

Apache 使用mod_rewrite保留引用URL的参数,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,在上面的页面上,有大约20个链接。单击其中一个链接时,用户将被带到: www.mysite.com/foo/article?id=8888&area=9999 但我希望发生的事情(使用.htaccess文件)是,当单击链接时,引用URL中的参数会被保留和附加,因此单击同一链接会将它们带到: www.mysite.com/foo/a_new_page 但我想不出来。我知道我需要使用QSA来附加它们,而不是覆盖可能设置的任何内容。但我不知道如何测试引用URL上是否存在参数并将其追

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

www.mysite.com/foo/article?id=8888&area=9999
但我希望发生的事情(使用.htaccess文件)是,当单击链接时,引用URL中的参数会被保留和附加,因此单击同一链接会将它们带到:

    www.mysite.com/foo/a_new_page
但我想不出来。我知道我需要使用QSA来附加它们,而不是覆盖可能设置的任何内容。但我不知道如何测试引用URL上是否存在参数并将其追加,以便在不同的页面中保留参数

有什么办法吗?

试试:

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

您当前的htaccess是什么?我已经更新了我的帖子,加入了我的.htaccess文件。您如何确定新页面?意思是你从哪里获得新的网页?你说用户被带到这个页面。这只是一个典型的页面。从技术上讲,他们可以去任何地方。你点击的链接已经有了一些查询字符串,比如:
www.mysite.com/foo/a_new_page?id=11111
你希望最终的URL变成什么?我根本无法实现。它只需将我带到URL,而不附加参数:/@Nadine您确定已加载mod_rewrite并正在运行吗?是否正在读取和处理htaccess?你确定你有正确的推荐人吗?请参阅我的上一次编辑。我几乎让你的代码正常工作了。它现在只是给了我一个重定向。重写工作正常,我只需要解决重定向垃圾。@Nadine你不需要
http://www.mysite.com
在规则中。这导致了重定向。只要
/new\u page?id=%2
就足够了。@Nadine,您还需要我的答案中的其他条件,否则它会循环。(我以前犯过一个错误)
RewriteEngine On
RewriteCond %{QUERY_STRING} !^id=
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?mysite\.com/.*\?id=([^&]+)
RewriteRule ^foo(.*)$ foo/$1?id=%2 [L]