重定向包含锚点 (#) 的 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]
有个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]