【发布时间】:2011-02-11 00:49:24
【问题描述】:
我已正确配置我的网站以重新路由来自的每条流量
mywonderfulwebsite.com/folder1/whatever-url.php
到
http://folder1.mywonderfulwebsite.com/whatever-url-as-above.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很糟糕:例如,试图访问这个url:
www.mywonderfulwebsite.com/folder1/atextfile.txt
重定向到
folder1.mywonderfulwebsite.com/atextfile.txt&
实际上,mod_rewrite 会附加尾随的 &
我该如何解决这个问题? 如何正确重定向到正确的(也带有 GET 参数)url?
非常感谢
【问题讨论】:
-
问号起的部分称为查询字符串,GET是HTTP方法。
-
你说得对,php 中的 $_GET 太多了 :) 谢谢你的精确说明
标签: apache .htaccess mod-rewrite