在网址

时间:2016-12-29 13:39:53

标签: html html5 url

根据URL Encoding,在移动网站时 - 我没有构建 - 我已经遇到了使用%3F,这意味着什么?它似乎被大量使用:<a href="example%3Flang=1.html">Example</a>什么链接到名为example_lang=1.html的文件。

所以,我将%3F替换为_,一切都有效。

Q - 我在这里遗漏了一些东西,旧的网站工作了,虽然感动了,但它已经不复存在了。随着替换,链接工作......为什么?

1 个答案:

答案 0 :(得分:6)

首先,你应该详细说明你的问题,以便更好地理解它。如果我理解正确,那么这可能就是答案。

“_”不是保留的URI字符。

正如你所说,%3F是为“?”而保留的那么你是绝对正确但如果你阅读wiki上写的文档说“_”(下划线)不是保留的URI字符。

因此,例如,如果网页的网址为“ example_test.html ”,则其编码的网址必须为“ example_test.html ”,如果没有应用于该URL的机制。现在我将采用另一个基于PHP的网页示例来回答您的问题。

在PHP中有一个函数“ str_replace ”,用于通过程序员定义的字符或字符串替换字符串。

假设我有一个名为“ example_test.html ”的页面,出于某些xyz原因,我想将其更改为“ example%3Ftest.html ”然后我可以使用

str_replace("%3F","_","<a href='example%3Ftest.html'>Example Test</a>");

此功能将搜索“%3F ”的所有出现,并将其替换为提供的字符串中的“ _ ”(此处为“ href = example%3Ftest” .html “)并输出为” href ='example_test.html “,这是我文件的实际链接。