正则表达式匹配俄语,允许.htaccess中的所有西里尔字符

时间:2013-06-07 07:04:44

标签: regex .htaccess cyrillic

如何将带有俄文slug的url重定向到特定的php页面。例如,我有这个网址。

   http://www.example.com/основной-момент.htm

并希望在.htaccess中重定向到此

   http://www.example.com/category.php?slug=<russian slug>

1 个答案:

答案 0 :(得分:3)

如果您的服务器允许,您可以针对.htaccess文件中的特定页面尝试类似的操作:

RewriteEngine On
RewriteRule ^основной-момент.htm$ category.php?slug=ru

在Regex中,如果您的服务器上启用了字符集,您应该可以使用字符范围:

RewriteRule ^([A-Яа-я-]+)\.htm$ category.php?slug=ru

要捕获您将使用此短语(就像英语):

RewriteRule ^([A-Яа-я-]+)\.htm$ category.php?slug=$1

另一种方法是检测语言

#For users with Russian as their primary browsing language
RewriteCond %{HTTP:Accept-Language} ^ru [NC]
RewriteRule .* category.php?slug=ru

此外,如果您在服务器上使用动态语言,您应该能够使用REQUEST_URI var来解析和确定目标语言,因为Apache提供内容和编程语言(如PHP或Perl)可以解析更多功能。