301 重定向到 URL 中带有 # 的域

Posted

技术标签:

【中文标题】301 重定向到 URL 中带有 # 的域【英文标题】:301 redirect to domain with # in the URL 【发布时间】:2019-08-25 10:16:13 【问题描述】:

我目前正在尝试重定向以下内容:

bar.com/foo ====> bar.com/bar.html#/#

我的重定向规则如下:

RewriteEngine On
RewriteRule ^/foo$  bar.com/bar.html#/#  [R=301,L,NC]

这是我运行测试 curl 时的输出:

301 http://bar.com/foo ======>
https://bar.com/bar.html%23/%23

它返回一个 301 HTTP 响应;但是,这些 %23 字符是表示重定向后 # 将出现在 URL 中的编码指示,还是 URL 的文字表示?如果这是不正确的,我需要做任何转义吗?

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

使用NE 选项避免编码:

RewriteEngine On

RewriteRule ^/?foo/?$ /bar.html#/# [R=301,L,NC,NE]

确保在新浏览器中测试它以避免旧缓存。

【讨论】:

以上是关于301 重定向到 URL 中带有 # 的域的主要内容,如果未能解决你的问题,请参考以下文章

IIS7 或 .Net 301 从一个域重定向到另一个域

301 使用 .htaccess 从旧域重定向到新域

301 重定向最佳实践 - 多个站点到单个站点

301 使用 web.config 将一个域重定向到另一个域

将域重定向到另一个域并将重定向的域附加为查询字符串

如果用户已缓存站点,如何将用户从旧域重定向到新域