301将主页重定向到处理'www / no www'和'/index.html'的新域名

时间:2012-11-21 12:44:51

标签: .htaccess http-status-code-301

正在移动网站的网址,因此我们已将每个网页设置301重定向到新网站上的同等网页。我们用于此的语法是:

redirect 301 /about-us.html http://newiste.co.uk/about-us.html

我遇到的问题是如何将旧的主页 - http://oldsite.co.uk发送到http://newsite.co.uk - 因为主页位于domain.co.uk而且没有/index.html也有与www类似的问题。 vs非www。

会在旧域上配置我的.htaccess文件,这样做是否正确?

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.oldsite\.co\.uk)(:80)? [NC]
RewriteRule ^(.*) http://oldsite.co.uk/$1 [R=301,L]
order deny,allow

redirect 301 / http://newsite.co.uk
redirect 301 /about-us.html http://newsite.co.uk/about-us.html
redirect 301 /contact-us.html http://newsite.co.uk/contact-us.html
redirect 301 /bespoke-furniture.html http://newsite.co.uk/bespoke-furniture.html
redirect 301 /how-we-work.html http://newsite.co.uk/discovery.html

1 个答案:

答案 0 :(得分:1)

要重定向根文档,您可以使用以下重写规则:

RewriteRule ^/?$ http://newsite.co.uk/ [R=301,L]

也是对你的评论:

RewriteCond %{HTTP_HOST} ^(www\.oldsite\.co\.uk)(:80)? [NC]

端口号永远不是HTTP_HOST变量的一部分,最有效的方法是尽可能避免使用正则表达式:

RewriteCond %{HTTP_HOST} =www.oldsite.co.uk [NC]

您的代码redirect 301 / http://newsite.co.uk将重定向所有内容,而不仅仅是根/