301使用URL中的#重定向到域

时间:2019-04-03 19:15:19

标签: regex apache redirect url-redirection http-status-code-301

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

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 个答案:

答案 0 :(得分:2)

使用NE选项避免编码:

RewriteEngine On

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

请确保在新的浏览器中对其进行测试,以避免旧的缓存。