2

在 mod_rewrite 上,这里有一个小但令人困惑的 htaccess 问题。我们需要转发: http ://www.mydomain.com/ladies-boots/?shoesize=43&calfwidth=K 到 http://www.mydomain.com/ladies-boots/#nogo&somevar=1&shoesize=43&calfwidth=K

我们的代码(感谢另一个 Stackoverflow 帖子)是:

RewriteCond %{QUERY_STRING} ^shoesize=([0-9]+)\&calfwidth=([A-Z])$ 
RewriteRule ^ladies-boots/$ http://www.mydomain.com/ladies-boots/#nogo&somevar=1&shoesize=%1&calfwidth=%2? [R=301,L]

上面的方法很好,除了哈希 # 标记被 Apache 转义,它将 URL 写入为 %23 而不是 #。

有什么办法可以解决这个问题吗?对于某些 Javascript/非 SE 友好的功能,我确实需要哈希标记,并且如果没有有效的哈希标记,上述 URL 将无法使用。

非常感谢!

4

2 回答 2

2

上面的方法很好,除了哈希 # 标记被 Apache 转义,它将 URL 写入为 %23 而不是 #。

如果您NE在方括号内使用标志,则可以使井号标签不转义:[R=301,L,NE]

于 2012-07-31T17:13:23.707 回答
0

不,没有办法。URL 只能包含字母、数字和符号 / ?&。

于 2012-07-31T12:31:55.363 回答