完全重定向所有网址,只需更改域名
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.com
的DOCUMENT_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]
【讨论】:
以上是关于完全重定向所有网址,只需更改域名的主要内容,如果未能解决你的问题,请参考以下文章