用正则表达式(。*)mod_rewrite多个参数

时间:2011-08-24 08:05:14

标签: regex .htaccess unicode url-rewriting

我有一个类似以下的网址:

http://www.example.com/cat/دسته/page/2/

正如您所看到的,那里有Unicode字符串。我在htaccess中使用以下指令:

RewriteRule ^cat/(.*)/page/([0-9]*)/$ cat.php?cat=$1&page=$2 [L,NC]

这里的问题是正则表达式引擎解析上面的url并将所有دسته/page/2/设置为第一个参数,而我只希望Unicode字符串作为我的第一个参数而整数作为第二个参数。

怎么办?有没有更好的方法来查找(.*)以外的Unicode字符?

1 个答案:

答案 0 :(得分:1)

这有点奇怪 - 它应该不那样 - 必须是Unicode弄乱整个事情。

在任何情况下 - 使用它 - 它更精确:

RewriteRule ^cat/([^/]+)/page/([0-9]+)/$ cat.php?cat=$1&page=$2 [L,NC]

您可以将[0-9]替换为\d - 完全相同且更短。