0

我正在为我目前正在开发的网站使用一些 url 重写。我对数字、字母和 - 使用这个重写工作正常:

 RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$    characters.php?realm=$1&name=$2 [NC]

但是,我需要规则的第一部分来允许允许 ',并且我需要规则的第二部分来允许特殊字符,例如 ú、æ、ä、ç 以及几乎所有位于此处的字符类似于一封信。

我知道特殊字符不好,但我不是允许它们用于字符名称的人。我只需要在我的规则中允许它们,以便具有这些名称的字符可以访问我的应用程序。

谢谢。

编辑:第一部分现在有效。目前正在尝试第二部分。

编辑#2:为第二部分([^/]+)尝试两种解决方案并排除某些字符允许显示信息而不是导致 404 错误。但是它导致我的 CSS 不显示,而是尝试调用 /css/error 而不是 /css。根据 chrome,它会导致 css 文件的重定向循环。

将某些内容重定向到 /error 的唯一方法是字符数据无效。此应用程序用于从暴雪字符 api 中提取字符信息,因此重音字符可以用于重写是必不可少的。

我不确定这是否重要,但是当我只允许 ú 与 az 和 AZ 一起包含时,我收到一个 404 错误,指出无法找到该页面,而不是显示 ú 它显示 ú 在它的位置。

4

2 回答 2

0

我能想到的最简单的解决方案是 ú 显示为 ú 例如,所以我只是简单地将 ú 包含在规则中。不确定这是否是最好的方法,但它现在有效。

于 2012-08-23T16:04:06.957 回答
0

^([a-zA-Z0-9_'-]+)/([^此处排除字符]+)$

在第一个括号内添加“'”应该允许它匹配。就第二个而言,您可能想要使用否定字符类,并列出您不允许的字符

编辑以在“-”之前移动单引号。

于 2012-08-23T14:01:00.290 回答