首页 > 解决方案 > htaccess 301 重定向到新页面不起作用

问题描述

我已将 60 301 从旧网址重定向到新网址。我在每一页上的语法是这样的:

Redirect 301 "http://www.olddomain.com/product/foo" "https://newdomain.com/product/bar"

当我转到旧页面"http://www.olddomain.com/product/foo"时,我被重定向到新页面,但不是我定义的 URL "https://newdomain.com/product/bar":. 我被重定向到"https://newdomain/product/foo".

所以重定向到域是正确的,但是 URL 上的子页面是旧的,而不是新的。

有人知道为什么会这样吗?

标签: apache.htaccesstomcat

解决方案


Redirect您不能匹配指令中的域名。

我建议使用一个mod_rewrite规则,它应该放在所有其他规则之前

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteRule ^product/foo/?$ https://newdomain.com/product/bar [L,NC,R=301]

确保这是最重要的规则,并在全新的浏览器中进行测试以避免获取旧缓存。


推荐阅读