Regex mod_使用正则表达式(.*)重写多个参数
我的url如下所示:Regex mod_使用正则表达式(.*)重写多个参数,regex,.htaccess,unicode,url-rewriting,Regex,.htaccess,Unicode,Url Rewriting,我的url如下所示: http://www.example.com/cat/دسته/page/2/ 如您所见,上面有Unicode字符串。我在htaccess中使用以下指令: RewriteRule ^cat/(.*)/page/([0-9]*)/$ cat.php?cat=$1&page=$2 [L,NC] 这里的问题是正则表达式引擎解析上面的url,它将所有的参数设置为第一个参数,而我只希望Unicode字符串作为第一个参数,整数作为第二个参数 如何做到这一点?除了(.*),之
http://www.example.com/cat/دسته/page/2/
如您所见,上面有Unicode字符串。我在htaccess中使用以下指令:
RewriteRule ^cat/(.*)/page/([0-9]*)/$ cat.php?cat=$1&page=$2 [L,NC]
这里的问题是正则表达式引擎解析上面的url,它将所有的参数设置为第一个参数,而我只希望Unicode字符串作为第一个参数,整数作为第二个参数
如何做到这一点?除了(.*)
,之外,还有更好的方法来查找Unicode字符吗?这有点奇怪--它不应该这样做--一定是Unicode搞乱了整件事
在任何情况下,用这个来代替,它更精确:
RewriteRule ^cat/([^/]+)/page/([0-9]+)/$ cat.php?cat=$1&page=$2 [L,NC]
您可以将[0-9]
替换为\d
——这样做完全相同,而且更短