我想通过这种方式重定向:从 www.example.com/link.php?a=1&b=1 到 www.example.net/subdirectory/link.php?a=1&b=1
我尝试使用这个 .htaccess,但是没有效果:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.net/subdirectory$ [L,R=301]
以上将 www.example.com/link.php?a=1&b=1 重定向到 www.example.net/subdirectory/?a=1&b=1,省略了 link.php 部分。
系统是 apache2.2 + mod_rewrite,运行于 debian wheezy 64bit 上。提前致谢。
答案1
您只需将其放在$
RewriteRule 的末尾,但您需要正则表达式的第一个捕获组(的位.*
)^(.*)$
。这是用 提取的$1
,另外请注意,您仍然需要在末尾添加一个尾随斜杠。因此,总而言之,将您的规则更新为:
RewriteRule ^(.*)$ http://www.example.net/subdirectory/$1 [L,R=301]
http://www.example.com/link.php?a=1&b=1
然后将被重写为http://www.example.net/subdirectory/link.php?a=1&b=1