我的数据库中有类别名称,有些主题有éèê等法语字符。 它按照需要工作,直到今天我尝试添加另一个字符à然后我开始得到SERVER ERROR
这是我的.htaccess:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([A-Za-z0-9éèêà_-\s]+)-(\d+)\.htm$ classified.php?id=$2 [L]
正如您所看到的,没有à,它可以正常工作。
如何将该内容添加到正则表达式中?
答案 0 :(得分:2)
似乎URL中的扩展ASCII字符以UTF-8和url编码的形式发送。例如:
/éèêà-1.htm -> /%C3%A9%C3%A8%C3%AA%C3%A0-1.htm
上面的URL可以通过mod_rewrite匹配,如下所示:
RewriteEngine On
RewriteRule ^(?:\w|\xC3\xA9|\xC3\xA8|\xC3\xAA|\xC3\xA0)+-(\d+)\.htm$ classified.php?id=$1 [L]
答案 1 :(得分:2)
如果您使用各种字符和重音字母,那么为什么不允许任何事情过去?
注意:使用此规则也将允许空格;
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)-(\d+)\.htm$ classified.php?id=$2 [L]
以后如果你决定限制正则表达式,让我们说你不想要任何这些字符#$%那么你必须做出例外:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([^#$%]+)-(\d+)\.htm$ classified.php?id=$2 [L]