Apache .htaccess 301将旧域上的所有页面重定向到新域上的单个页面
我希望将旧域上的每个页面重定向到新域上的单个页面。它还应该重定向www和非www版本。对域old.com的每一个请求,无论是什么,都应该指向www.new.com rootApache .htaccess 301将旧域上的所有页面重定向到新域上的单个页面,apache,.htaccess,redirect,http-status-code-301,Apache,.htaccess,Redirect,Http Status Code 301,我希望将旧域上的每个页面重定向到新域上的单个页面。它还应该重定向www和非www版本。对域old.com的每一个请求,无论是什么,都应该指向www.new.com root old.com/1.php www.old.com/2.php old.com/2.php old.com/links/index.php old.com/about-us.html old.com/?string=1 应全部重定向到: www.new.com/ 我正在寻找.htaccess解决方案。您可以在old.com
old.com/1.php
www.old.com/2.php
old.com/2.php
old.com/links/index.php
old.com/about-us.html
old.com/?string=1
应全部重定向到:
www.new.com/
我正在寻找.htaccess解决方案。您可以在old.com vhost中使用RedirectMatch
RedirectMatch permanent .* http://www.new.com/
Redirect
将匹配URI的尾随部分附加到重定向URI,但使用RedirectMatch
可以使用括号和$number
引用选择要传输的部分(如果有)
如果旧域和新域必须是磁盘上同一文档根的别名,那么您可能必须使用mod_rewrite
RewriteEngine on
RewriteCond %{HTTP_HOST} old\.com$
RewriteRule .* http://www.new.com/ [L,R=301]
这将处理所有重定向,包括查询字符串。请原谅,我正在打电话:)
这一点已经得到了回答,但下面的代码中包含了一些有用的注释,这样,如果人们忘记了它的作用,就可以在以后查看它 将其放入.htaccess文件中:
## Each and every page on old domain redirects to single page
## By appending question mark to new domain, query strings are removed
RewriteEngine on
RewriteCond %{HTTP_HOST} old\.com$
RewriteRule .* http://www.new.com/? [L,R=301]
您还可以重定向到另一个域上的子目录,我需要这样做:
## Each and every page on old domain redirects to single page
## By appending question mark to new domain, query strings are removed
RewriteEngine on
RewriteCond %{HTTP_HOST} old\.com$
RewriteRule .* http://www.new.com/sub-directory/? [L,R=301]
适用于大多数页面,但不适用于www.old.com/?string=1第二种解决方案也不会重定向www.old.com/?string=1(这相当于www.old.com/index.php?string=1)。它确实会重定向文件夹形式的所有URL(www.old.com/folder/)@DanHorvat如果在新域中添加问号
?
,则查询字符串将被删除重写规则。*http://www.new.com/? [L,R=301]
为了保留所有查询字符串,请在包含重写规则的行末尾添加[QSA]
## Each and every page on old domain redirects to single page
## By appending question mark to new domain, query strings are removed
RewriteEngine on
RewriteCond %{HTTP_HOST} old\.com$
RewriteRule .* http://www.new.com/sub-directory/? [L,R=301]