网址中的感叹号

Car*_*ham -2 php url .htaccess

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

Jas*_*wer 5

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

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

这将!TEST!/?TEST?变成test-test,并ASF is absolutely awesome!进入asf-is-absolutely-awesome.