2011-02-10 139 views
3

我已经正确配置了我的网站,每个业务从维护查询字符串mod_rewrite的

mywonderfulwebsite.com/ 文件夹1/任何的URL .PHP

重新路由

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

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

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

所以,问题吗?是如何使在GET参数mod_rewrite的传球给 “rewrited” 的网址,是这样的:

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的追加后&

我该如何解决这个问题? 如何正确重定向到正确的(也有GET参数)url?

非常感谢

+0

来自问号上的部分称为**查询字符串**,** GET **是HTTP方法。 – 2011-02-10 16:52:11

+0

你说得对,php中$ _GET太多了:)谢谢你的精确度 – Array 2011-02-10 17:36:48

回答

5

就在[QSA]标志添加到您的其他标志有[Q] uery [S]特林[A]自动ppended。

[L,R=301,QSA]