网址中的感叹号

时间:2011-05-05 04:56:02

标签: php .htaccess url

我正在构建一个论坛,其中包含您要查看的主题的标题。但如果它包含一个!然后它会抛出404错误。我知道ASCII字符!是%21,我假设urlencode()会改变!到%21但它没有。当我点击链接时,网址仍然包含!这打破了网址。有什么提示吗?

1 个答案:

答案 0 :(得分:5)

我建议您将要在网址中使用的标题进行规范化,以便安全使用并让用户可以阅读。

$normalizedTitle = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($title)), '-');

这会将!TEST!/?TEST?变为test-test,将ASF is absolutely awesome!变为asf-is-absolutely-awesome