apache - 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 上的子页面是旧的,而不是新的。
有人知道为什么会这样吗?
解决方案
Redirect
您不能匹配指令中的域名。
我建议使用一个mod_rewrite
规则,它应该放在所有其他规则之前:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteRule ^product/foo/?$ https://newdomain.com/product/bar [L,NC,R=301]
确保这是最重要的规则,并在全新的浏览器中进行测试以避免获取旧缓存。
推荐阅读
- node.js - 如何在 mongodb 中进行类似“不包含其他值的数组”的查询?
- node.js - 更新 JSON 问题,如何正确更新?
- swift - CloudKit 权利缺失
- graphql - 公共 GraphQL 指令
- c# - 将 [] 字符串转换为 int?
- python - 在 Python pandas 中读取包含日期的标头
- google-apps-script - 将字符串范围转换为浮点数并在 GAS 上返回其最大值
- python - 搜索完整的子字符串是否在字符串中而不是它的一部分
- python - 如何在 pandas 数据框中插入重复的列,并从新列的值中删除最后 3 个数字?
- javascript - 每秒更新一次以显示时间