尝试通过 .htaccess 将页面从旧域重定向到新域
Trying to redirect pages from old domain to new domain through .htaccess
我正在尝试使用 .htaccess 进行重定向,但 运行 遇到了一个我无法识别的问题。
我想做什么:将所有页面从我的旧域重定向到我的新域。
例如:https://www.olddomain.com/fun-blog-post/ would forward to https://www.newdomain.com/blog/fun-blog-post/
我的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com/ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com/
RewriteRule (.*)$ https://www.newdomain.com/blog/ [L,R=301]
意外行为:当我输入 olddomain.com 时,它会直接转到 newdomain.com。但是,如果我输入 olddomain.com/new-blog-post,它根本不会重定向。它引发 404 错误并仅显示 olddomain.com/new-blog-post.
我已经检查了以下两个线程。
.htaccess redirect all pages to new domain
但是,我想不通这一点。我尝试了一些不同的调整,其中大部分我都不记得了,但这似乎是我能想到的最佳解决方案。有人可以帮我看看我做错了什么吗?
RewriteCond %{HTTP_HOST} ^olddomain.com/ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com/
RewriteRule (.*)$ https://www.newdomain.com/blog/ [L,R=301]
如所写,这不会重定向任何内容,因为 RewriteCond
指令中 CondPattern 末尾的错误 /
。
应该这样写(两个RewriteCond
指令可以合二为一):
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
RewriteRule (.*) https://www.newdomain.com/blog/ [R=301,L]
这需要靠近 .htaccess
文件的顶部,在任何现有指令之前。
注意:首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
测试前您需要清除浏览器缓存。
When I type in olddomain.com, it takes me directly to newdomain.com
这可能是由于缓存的重定向或“其他原因”造成的。您发布的规则甚至不会触发此重定向。
我正在尝试使用 .htaccess 进行重定向,但 运行 遇到了一个我无法识别的问题。
我想做什么:将所有页面从我的旧域重定向到我的新域。 例如:https://www.olddomain.com/fun-blog-post/ would forward to https://www.newdomain.com/blog/fun-blog-post/
我的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com/ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com/
RewriteRule (.*)$ https://www.newdomain.com/blog/ [L,R=301]
意外行为:当我输入 olddomain.com 时,它会直接转到 newdomain.com。但是,如果我输入 olddomain.com/new-blog-post,它根本不会重定向。它引发 404 错误并仅显示 olddomain.com/new-blog-post.
我已经检查了以下两个线程。
.htaccess redirect all pages to new domain
但是,我想不通这一点。我尝试了一些不同的调整,其中大部分我都不记得了,但这似乎是我能想到的最佳解决方案。有人可以帮我看看我做错了什么吗?
RewriteCond %{HTTP_HOST} ^olddomain.com/ [OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com/ RewriteRule (.*)$ https://www.newdomain.com/blog/ [L,R=301]
如所写,这不会重定向任何内容,因为 RewriteCond
指令中 CondPattern 末尾的错误 /
。
应该这样写(两个RewriteCond
指令可以合二为一):
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
RewriteRule (.*) https://www.newdomain.com/blog/ [R=301,L]
这需要靠近 .htaccess
文件的顶部,在任何现有指令之前。
注意:首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
测试前您需要清除浏览器缓存。
When I type in olddomain.com, it takes me directly to newdomain.com
这可能是由于缓存的重定向或“其他原因”造成的。您发布的规则甚至不会触发此重定向。