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