国际网址与htaccess

时间:2017-05-01 16:47:38

标签: regex .htaccess url mod-rewrite internationalization

我的.htaccess文件中有这条规则:

RewriteRule ^([a-z0-9-]+)/([\p{L}0-9-]+)$ /cat/article.php?author=$1&title=$2 [QSA,L]

例如匹配http://www.example.com/toto6-titi/tata-tutu2

现在,我想在任何字母表中包含任何类型的字符,因此我将重写规则更改为:

RewriteRule ^([\p{L}0-9-]+)/([\p{L}0-9-]+)$ /cat/article.php?author=$1&title=$2 [QSA,L]

http://www.example.com/toto6-titi/tata-tutu2以及类似的网址仍在使用,但是国际网站已经开始工作了#34;像http://www.example.com/啊/安这样的网址仍然没有:(

我正在使用Apache 2.2.3,PHP 5.6.25和MySQL 5.6.17

我的.htaccess文件采用UTF8编码

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我建议使用带有否定字符类的正则表达式:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?author=$1&title=$2 [QSA,L]