首页 > 解决方案 > URL 友好替换 %20 为“-”

问题描述

我想更改 URL 中“-”的 %20,使其对 url 友好,我已经尝试了所有方法,但没有任何效果,不是 htaccess、java 或 php。

这是我的链接示例,一点也不友好: https ://www.ugocd.com/ilustracion_galeria_clasica?id=Retrato%20digital%20Charles%20Chaplin

这是我的一些代码:

<a href="ilustracion_filtro?id=<?php echo $categoria; ?>

标签: .htaccessurl

解决方案


如果没有看到您的代码,很难说出您的问题到底是什么,但我怀疑这里发生的事情是一种误解。

%20不是文字字符串,您不应尝试将其视为一个字符串。%XX在 URL 中,XX 是两个十六进制字符,是URL 编码的字符串。不是 URL 安全的值(即......除了基本的 US-ASCII 之外的几乎任何东西)都以这种方式编码,以便它们成为 URL 安全的。空格的 US-ASCII 代码点是 20,因此它被编码为%20. 当您%20在 URL 中看到时,您实际上是在处理一个空格,而不是文字百分比字符、一个 2 和一个零。

因此,如果您尝试通过执行以下操作将此值替换为其他值:

str_replace("%20", "", $url)

那是行不通的,因为您要替换的是文字字符串而不是实际值。试试这个:

str_replace(" ", "", $url)

推荐阅读