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

标签 regex .htaccess cyrillic

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

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

并且想要重定向到 .htaccess 中的这个

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

最佳答案

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

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

在正则表达式中,如果您的服务器启用了字符集,您应该能够使用字符范围:

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) 可以通过解析做更多事情。

关于regex - 匹配俄语的正则表达式,允许 .htaccess 中的所有西里尔字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978182/

相关文章:

python - 再次出现UnicodeEncodeError(ascii codec无法编码)

c - 将西里尔符号保存在 C 中的 txt 文件中

删除 php mysql 结果反斜杠

javascript - 使用正则表达式解析URL参数

.htaccess - URL 重写在 Nginx 中不起作用

php - 如何为子域配置.htaccess?

javascript - AngularJS 不显示西里尔字母

regex - groupValues仅返回重复模式的最后一次出现

javascript - url 的正则表达式一些问题

svn - .htaccess 文件中的 If 语句,仅在特定目录中启用密码保护