当文件名包含"?"和"="字符时,如何打开URI?

4

我在我的网站目录中有一个名为index.php?title=dogs的文件,我想在浏览器中打开它。我应该输入什么URL?当我输入.../index.php?title=dogs时,它认为我正在寻找一个名为index.php的文件,但实际上这个文件并不存在。

正确的URL应该是.../index.php%3Ftitle=dogs

2个回答

4

ASCII码中“?”的十六进制值为0x3f,因此URL编码形式为%3f,“=”的值为0x3d,所以是%3d,得到:

.../index.php%3ftitle%3ddogs

请见百分号编码
顺便提醒一下,一旦您转义了?,您可能不需要再转义=
但是,您应该考虑更改文件名!

0

网络服务器假定问号后面的所有内容都是传递给"index.php"文件的参数,称为查询字符串(QueryString),因此它会将其从路径中取出,然后将其传递给index.php文件(具体取决于您使用的网络服务器)。 您可以通过Web服务器上的自定义设置来解决此问题,但个人不建议这样做。

附注:我不知道您可以创建像那样的文件名!


1
不要更改Web服务器的设置,只需转义URI中的“?”。 - Jonathan Wakely

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接