mod_rewrite适用于带en,es但不是zh-tw和zh-cn的URL?

时间:2010-08-03 13:40:35

标签: php mod-rewrite

我的网站有4种语言,可以使用以下模式访问:

http://example/index.php?lang=en
http://example/index.php?lang=es
http://example/index.php?lang=zh-tw
http://example/index.php?lang=zh-cn

我在 .htaccess 文件中使用以下 mod_rewrite 规则:

RewriteEngine on
RewriteRule ^([a-z]{2}(-[A-Z]{2})?)/(.*) $3?lang=$1 [L,QSA]

因此,输入http://example/en/index.phphttp://example/es/index.php会有效地将我重定向到http://example/index.php?lang=enhttp://example/index.php?lang=es。但这不适用于http://example/index.php?lang=zh-twhttp://example/index.php?lang=zh-cn

它只是说:The requested document was not found on this server.

这与连字符(zh-tw和zh-cn)有关?

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

[A-Z]替换为[a-z]