.htaccess 301从旧域重定向到新域,而页面和URL的结构相同

时间:2012-10-21 19:08:56

标签: apache .htaccess mod-rewrite redirect seo

我想将http://olddomain.com重定向到http://newdomain.com以获取我的所有网址。将新网页上的页面保持相同。 我的意思是URL,如下面的

http://olddomain.com/home/category/page.html
http://olddomain.com/home/mybook/page2.html
http://olddomain.com/login

should be 301 redirect to the new newdomain but same pages, like below

http://newdomain.com/home/category/page.html
http://newdomain.com/home/mybook/page2.html
http://newdomain.com/login

这就是我目前在.htaccess中所拥有的

RewriteEngine on
RewriteCond $1 !^(index\.php|img|public|robots\.txt) [NC]
RewriteRule ^(.*)$ /index.php?/$1 [L]

请帮助我干净利落地完成这项工作,因为我是新手。

也有人知道搜索引擎可能需要花多少时间才能远离我的olddomain的引用?我的意思是搜索查询中的旧域网址应该被新域名网址替换...旧域名应该远离搜索引擎。

4 个答案:

答案 0 :(得分:26)

在.htaccess -

的开头添加以下代码
    RewriteEngine On

    # Redirect Entire Site to New Domain
    RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
    RewriteCond %{HTTP_HOST} ^another.olddomain.com$ [NC]
    RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L]

答案 1 :(得分:7)

更简单:

Redirect 301 / http://newdomain.com/

将.htaccess文件替换为该行,或者如果您有权访问它,请将其放在旧域的apache conf文件中(我将其置于DocumentRoot指令之后)。

有关详细信息,请参阅Redirecting and Remapping with mod_rewrite

答案 2 :(得分:1)

我通常在旧网站的.htaccess中添加以下代码

#Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L]

以上代码会将所有链接重定向到新域,您无需执行任何操作,每个链接和图像都会重定向到新域链接。 除此之外,我们必须在您的网站移动时告诉Google

如果您已将网站移至新域名,则可以使用地址更改工具向Google报告您的新网址。我们将更新我们的索引以反映您的新网址。更改将在180天内保持有效,届时我们将抓取您的新网址并将其编入索引。 以下是此https://support.google.com/webmasters/answer/83106?hl=en

的链接

我已经为2到3个站点做了这个,同时也没有丢失seo。它确实有效。 感谢

答案 3 :(得分:0)

试图做

LoadModule rewrite_module modules/mod_rewrite.so
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^localhost$ [NC]
  RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L]
</IfModule>

但是没有按照预期的方式工作,只是试图将我的localhost指向newdomain.com。

但是当我点击localhost仍然没有指出。