我的网站有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.php和http://example/es/index.php会有效地将我重定向到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
它只是说:The requested document was not found on this server.
这与连字符(zh-tw和zh-cn)有关?
如何解决此问题?
答案 0 :(得分:2)
将[A-Z]
替换为[a-z]
。