【问题标题】:.htaccess rewrite rule won't unicode characters.htaccess 重写规则不会对字符进行 unicode
【发布时间】:2011-12-18 06:17:03
【问题描述】:

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

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

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

【问题讨论】:

  • 您在日志中看到哪些错误消息?
  • [Sun Oct 30 16:17:15 2011] [error] [client ::1] File does not exist: /Applications/MAMP/htdocs/search/$3
  • 呵呵..你提供了什么输入(url),你得到了什么结果(url),相关的错误信息是什么?
  • 看看这个,很有用:stackoverflow.com/questions/459667/…

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


【解决方案1】:

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

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

编辑: mod_rewrite 使用非转义字符,所以如果你想使用 unicode 字符,请在重写规则中使用它们并将 .htaccess 文件保存为 unicode!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多