.htaccess 重写规则不会使用 unicode 字符
我正在使用以下 ModRewrite 来使我的 url 看起来更干净:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?key=$1
它允许使用字母和数字就好,但是当我尝试使用 % 时它会产生 400 错误,我需要使用 unicode 字符来表示 # / ' 等。 这背后有什么原因吗?谢谢。
I am using the following ModRewrite to make my urls look cleaner:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?key=$1
It allows use of letters and numbers just fine, but it produces a 400 error when i try to use %, which I require to use unicode characters for # / ', etc.
Any reason behind this? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该在重写规则中使用
B
标志。看看 apache 手册。编辑:
mod_rewrite 使用非转义字符,因此如果您想使用 unicode 字符,请在重写规则中使用它们并将
.htaccess
文件保存为 unicode!you should use
B
flag in your rewrite rule. take a look at apache manual .Edit:
mod_rewrite uses unescaped characters, so if you want to use unicode characters, use them in rewrite rule and save
.htaccess
file in unicode!