2016-09-23 74 views
0

我已经有一些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] 

请告诉我怎么必须添加这样的规则。

回答

0

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

另外,如果你正在使用[B],以避免逃避,你也应该能够只使用(+)代替那巨大的人物名单。

+0

难度在于lang = $ 1&page = $ 2对于$ 1和$ 2的任何值都不是有效的URL。那个查询字符串应该追加到什么地方?查询字符串必须遵循有效的URI。 –