【问题标题】:Allow percentage (%) symbol in mod_rewrite?在 mod_rewrite 中允许百分比 (%) 符号?
【发布时间】:2014-11-25 15:38:42
【问题描述】:

所以我试图通过 mod_rewrite 规则传递一个 PHP urlencode() 变量,但我似乎无法让它正常工作。

目前我正在传递这样的事情:

/test/abc%40test.co.uk

将 urlencode 中的 @ 符号替换为 &40。

通过这条规则:

RewriteRule ^test/([-_.%A-Za-z0-9]+)/?$ test.php?variable=$1

据我所知,这应该允许 % 符号通过;为什么它不工作?我错过了什么明显的东西吗?

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    URL 在通过重写引擎发送之前被解码,因此您需要匹配@,而不是编码字符串。试试:

    RewriteRule ^test/([-_.@A-Za-z0-9]+)/?$ test.php?variable=$1
    

    【讨论】:

    • 哦。之后是否再次编码?如果我使用 mod_rewrite,我是否真的必须自己使用 urlencode 对其进行编码?
    • @user3420034 是的,它再次被编码到查询字符串中,除非您使用NE 标志。
    猜你喜欢
    • 2013-10-14
    • 2015-05-08
    • 2012-12-28
    • 1970-01-01
    • 2013-12-15
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多