.htaccess 准确重定向所有网址,仅更改域名

1zmg4dgp  于 2022-11-25  发布在  其他
关注(0)|答案(3)|浏览(179)

我有一个大约有1000个网址的网站。这个网站正在转移到一个不同的域名。网址将是完全相同的,虽然,否则。我想纳入一个htaccess或某种规则,做一个301重定向的所有网址在一个一举。这将基本上取代域名作为301重定向。
示例:

  • 目前的URL:domain.example/blog/post-1.html
  • 重新导向至:newdomain.example/blog/post-1.html

这就像301重定向一样。我该怎么做?

rt4zxlrg

rt4zxlrg1#

将此重定向规则放在domain.exampleDOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

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

详细数据:

  • 当请求中的主机名为www.domain.exampledomain.example时,条件RewriteCond %{HTTP_HOST} ^(?:www\.)?domain\.example$匹配。
  • RewriteRule将所有URL重定向到newdomain.example,其URI与原始请求中的URI完全相同。
  • R=301将HTTP状态代码设置为301(永久重定向)
  • NE表示无转义,以避免对原始请求中的特殊字符(如果有)进行编码
  • L用于最后一条规则
41ik7eoe

41ik7eoe2#

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

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

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

brqmpdu1

brqmpdu13#

www或不带

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

相关问题