使用Perl反斜杠序列的Apache重写规则不起作用

时间:2013-12-21 20:32:58

标签: regex perl apache .htaccess mod-rewrite

我在Nginx上有一个非常简单的重写规则:

rewrite (*UTF8)^/([\pL\pN\/-]*)$ /index.php?route=$1;

它使用Perl反斜杠序列来匹配所有unicode字母和数字。

我试图在Apache上重现它:

RewriteRule ^([\pL\pN\/-]*)$ /index.php?route=$1 [QSA,L]

然而它只匹配斜线和短划线。错误日志是干净的。

1 个答案:

答案 0 :(得分:3)

mod_rewrite不支持\p属性,但您可以\w使用BNE标记,将您重写的URI转发给{{{ 1}}:

/index.php

PS: RewriteRule ^([\w/-]+)$ /index.php?route=$1 [QSA,L,B,NE] 还包含下划线。