【问题标题】:Allow multiple language characters in RewriteRule在 RewriteRule 中允许多个语言字符
【发布时间】:2017-02-01 11:48:26
【问题描述】:

我的引擎已经有了一些 RewriteRule,现在我想在 url 中添加外语,所以我也必须更改我的重写引擎规则,但我不知道我必须如何做到这一点。

RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/page/([0-9]+)/?$ ?lang=$1&page=$2&cat=$3&pNumb=$4 [NC]

RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/page/([0-9]+)/?$ ?lang=$1&page=$2&pNumb=$3 [NC]
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/opt/([A-Za-z0-9_\:{},"'><.-]+)/?$ ?lang=$1&page=$2&opt=$3 [NC]




RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ ?lang=$1&page=$2&cat=$3&cont=$4 [NC]

RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ ?lang=$1&page=$2&cat=$3 [NC]



RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ ?lang=$1&page=$2 [NC]
RewriteRule ^([A-Za-z0-9-_]+)/?$ ?lang=$1 [NC]

这是我目前的规则,我也希望 opt 变量允许外来字符。 在这一行

RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/opt/([A-Za-z0-9_\:{},"'><.-]+)/?$ ?lang=$1&page=$2&opt=$3 [NC]

请说明我必须如何添加这种规则。

【问题讨论】:

    标签: apache url mod-rewrite url-rewriting url-rewrite-module


    【解决方案1】:

    我相信您正在寻找 [B] 标志:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_b

    此外,如果您使用 [B] 来避免转义,您也应该能够只使用 (.+) 来代替大量字符。

    【讨论】:

    • 困难在于 ?lang=$1&page=$2 对于 $1 和 $2 的任何值都不是有效的 URL。该查询字符串应该附加到什么?查询字符串必须遵循有效的 URI。
    猜你喜欢
    • 2019-10-17
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多