允许在RewriteRule中的多种语言字符
问题描述:
我已经有一些RewriteRule为我的引擎,现在我想在url中添加外语,所以我必须改变我的重写引擎规则,但我不知道我必须如何做到这一点。允许在RewriteRule中的多种语言字符
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]
这是我目前的规则,我希望选择变量允许的外国字符。 在这一行
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/opt/([A-Za-z0-9_\:{},"'><.-]+)/?$ ?lang=$1&page=$2&opt=$3 [NC]
请告诉我怎么必须添加这样的规则。
答
我相信你正在寻找的[B]标志:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_b
另外,如果你正在使用[B],以避免逃避,你也应该能够只使用(+)代替那巨大的人物名单。
难度在于lang = $ 1&page = $ 2对于$ 1和$ 2的任何值都不是有效的URL。那个查询字符串应该追加到什么地方?查询字符串必须遵循有效的URI。 –