完全重定向所有网址,只需更改域名

Posted

技术标签:

【中文标题】完全重定向所有网址,只需更改域名【英文标题】:Redirect all urls exactly, just change domain name 【发布时间】:2013-11-17 22:30:56 【问题描述】:

我有一个包含大约 1000 个 URL 的网站。该网站正在迁移到不同的域名。但是,URL 将完全相同,否则。我想合并一个 htaccess 或某种规则,一举为所有 URL 执行 301 重定向。它本质上会将域名替换为 301 重定向。

示例: 当前网址:domain.com/blog/post-1.html 重定向到:newdomain.com/blog/post-1.html

这作为 301 重定向执行。我该怎么做?谢谢,

【问题讨论】:

【参考方案1】:

将此规则放在domain.comDOCUMENT_ROOT/.htaccess 文件中:

RewriteEngine On

RewriteCond %HTTP_HOST ^(?:www\.)domain\.com$ [NC]
RewriteRule ^ http://newdomain.com%REQUEST_URI [L,R=301]

【讨论】:

【参考方案2】:

将域名移动到新域时唯一更改 url 的是域名,我在我的 Apache .htaccess 文件中使用以下重定向

  RewriteEngine On
  RewriteCond %HTTP_HOST ^domain.com$ [OR]
  RewriteCond %HTTP_HOST ^www.domain.com$
  RewriteRule ^(.*)$ http://newdomain.com$1 [R=301,L]

这可确保旧站点中的所有链接都被重定向,并且 Google、Bing 等搜索引擎知道该域已被永久移动。这样做的好处是,来自 domain.com 的任何排名都会转移到 newdomain.com。确保不要在重写规则中的域之后包含/,否则它会加倍。

这是上述方法的替代方法。

【讨论】:

注意你也可以使用RewriteCond %HTTP_HOST =www.domain.com,所以这是一个普通的字符串比较,而不是正则表达式匹配。这可能会更快,并且您遇到意外情况的可能性更小(例如,在这种情况下,此答案中未转义的点 (.) 的含义)【参考方案3】:

www 或没有

RewriteEngine On

RewriteCond %HTTP_HOST (w*)domain\.com$ [NC]
RewriteRule ^ http://newdomain.com%REQUEST_URI [L,R=301]

【讨论】:

以上是关于完全重定向所有网址,只需更改域名的主要内容,如果未能解决你的问题,请参考以下文章

如何仅通过更改域名来重定向 URL,同时保留其他 URL 参数

伪静态网址301重定向到静态网址怎么实现

请问重定向与请求转发有啥区别?

将URL重定向到另一个域

域名更改后的301重定向

JavaScript 相对页面重定向?