htaccess 从一个域重定向到另一个域子目录

htaccess 从一个域重定向到另一个域子目录

我想通过这种方式重定向:从 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

相关内容