首页 > 解决方案 > htaccess 重写规则以接受印地语字符

问题描述

我有一个像这样的链接 www.example.com/profile.php?name=sagar123

我使用了这个规则:

RewriteRule ^profile/([a-zA-Z0-9_-]+)$ profile.php?name=$1 [L]

现在我可以把我的 URL 改成这样:

www.example.com/profile/sagar123

一切都很好但是,现在我也想像这样使用印地语字符

www.example.com/profile.php?name=सागर(工作正常)

www.example.com/profile/सागर(它不工作并显示服务器错误)

请帮我写一个规则或正则表达式来接受所有 ([a-zA-Z0-9_-]+) 和印地语字符。

谢谢并恭祝安康,

标签: phpregexapache.htaccess

解决方案


印地语字符介于\u0900-\u097F范围之间。所以你可以在字符类中使用它。

要回答您的问题,大多数正则表达式(PCRE)不支持\u符号和支持格式\x{900}

([\x{900}-\x{97F}a-zA-Z0-9_-]+)$

在 python\u中是支持的,所以:

([\u0900-\u097Fa-zA-Z0-9_-]+)$

看到这个正则表达式匹配证明英语和印地语字符得到匹配。

此外,请参阅以读取映射到其十六进制值的文字印地语字符。


推荐阅读