可以使用#字符重定向URL?

时间:2013-12-12 19:37:19

标签: .htaccess redirect

我想我可能已经把自己画成了一个角落。我曾经有一个标准永久链接/联系人/的联系页面。

我改为使用锚标记#maincontactform从每个页面访问的弹出联系表单。

我可以创建链接工作正常。

但是......如何将使用/ contact的旧反向链接重定向到新格式?

你不能像这样进行MOD重写:

RewriteRule /contact #maincontactform [R=301,L]

这似乎扩展到/%23maincontactform

有什么建议吗?

TIA

2 个答案:

答案 0 :(得分:1)

mod_rewrite会自动将特殊字符转换为十六进制格式。如果你不想这样,你必须明确告诉它不要用NE标志这样做。除此之外,请记住在每个目录上下文中,例如.htaccess文件,与正则表达式匹配的部分不以斜杠开头。因此,http://example.com/contact应与^contact/?$匹配。

RewriteRule ^contact/?$ #maincontactform [R=301,NE,L]

请参阅the documentation for mod_rewritethe NE flag especially

答案 1 :(得分:0)

NE flag将阻止mod_rewrite转义散列。

RewriteRule /contact #maincontactform [R=301,NE,L]