.htaccess重写规则不会对字符进行unicode

时间:2011-10-30 15:56:44

标签: apache .htaccess mod-rewrite url-rewriting

我使用以下ModRewrite使我的网址看起来更干净:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?key=$1

它允许使用字母和数字就好,但是当我尝试使用%时会产生400错误,我需要使用unicode字符#/'等。 这有什么原因吗?感谢。

1 个答案:

答案 0 :(得分:2)

您应该在重写规则中使用B标志。看看apache manual

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-#$%^&]+)/?$ index.php?key=$1 [B]

修改: mod_rewrite使用未转义的字符,因此如果您想使用unicode字符,请在重写规则中使用它们并将.htaccess文件保存为unicode!