重定向包含锚点 (#) 的 url

Redirect a url containing an anchor (#)

有个URL:https://www.carpark.cc/contact_us.html#b
我想重定向到: https://www.carparkpro.com/contact-us/#hk

我的.htaccess代码是:

RewriteCond %{HTTP_HOST} ^cn\.carpark\.cc$
RewriteRule ^contact_us/(.*)/? https://www.carparkpro.com/contact-us/#cn$ [NC,NE,R=301]

但是没有成功,请告诉我代码怎么写,谢谢

我怀疑 get 请求的实际 URL 是 https://www.carparkpro.com/contact-us,而不是 https://www.carparkpro.com/contact-us/,这解释了为什么不应用该规则。请理解锚点 (...#...) 是 而不是 URL 的一部分。客户端将 永远不会 发送该锚点,而只会发送 URL。所以服务器永远不会收到这样的锚。

我建议对您的规则稍作修改:

RewriteCond %{HTTP_HOST} ^cn\.carpark\.cc$
RewriteRule ^/?contact_us/? https://www.carparkpro.com/contact-us/#cn$ [NC,R=301,L]