使用mod_rewrite维护查询字符串

时间:2011-02-10 16:45:14

标签: apache .htaccess mod-rewrite

我已正确配置我的网站以重新路由来自

的每个流量

mywonderfulwebsite.com/的 folder1中 / 任何-URL .PHP

的http:// folder1中 .mywonderfulwebsite.com / 任何-URL-AS-以上 .PHP

问题是:很多时候,外部网站将页面与GET参数链接,例如

mywonderfulwebsite.com/folder1/whatever-url.php* ?trackingToken = 1 *

所以,问题是如何让mod_rewrite在GET参数中传递给“重写”的URL,如下所示:

folder1.mywonderfulwebsite.com/whatever-url-as-above.php* ?trackingToken = 1 *

目前,我正在做以下事情:

<VirtualHost *>
   ServerName mywonderfulwebsite.com
   ServerAlias www.mywonderfulwebsite.com
   DocumentRoot /var/www/mywonderfulwebsite/
   DirectoryIndex index.html

   <Directory />
      allow from all
      Options +FollowSymlinks -Indexes
   </Directory>

   RewriteEngine On
   RewriteRule    ^/folder1/(.*)?$    http://folder1.mywonderfulwebsite.com/$1&%{QUERY_STRING}    [L,R=301]
</VirtualHost>

这段htaccess非常糟糕:例如,尝试访问此网址:

www.mywonderfulwebsite.com/folder1/的 atextfile.txt

重定向到

folder1.mywonderfulwebsite.com/的 atextfile.txt&安培;

实际上,mod_rewrite附加了尾随&amp;

如何解决此问题? 如何正确地重定向到正确的(也使用GET参数)网址?

非常感谢

1 个答案:

答案 0 :(得分:6)

只需将[QSA]标志添加到其他标志即可[Query [String [自动附加。

[L,R=301,QSA]