正常得到: http://localhost/get.php?id=2&get=row
可以这样做吗?
http://localhost/get.php&id=2&get=row
或以其他方式。
当用户为我的网站制作参数时
http://test.com/的 URL = HTTP://本地主机/样品/
或者如果它包含“?id = 234”
所以新网址为http://test.com/?url=http://localhost/smaple?id=1234
它现在创建一个2个问号。
答案 0 :(得分:3)
您无法做什么,至少不使用&
和?
作为分隔符。它们在URL中具有已定义的含义,并且不能超出该含义使用。重复字符将导致无效的URL。它可能适用于大多数浏览器,但这是不好的做法。
考虑坚持使用经典?param=value¶m2=value2
符号。你为什么要首先改变它?有具体原因吗?
如果你真的想要这样做,并且可以使用其他角色将参数彼此分开,可以使用这两种方法中的一种。
<强> PATH_INFO 强>
如果您的Apache服务器上启用了AcceptPathInfo
设置(通常是这样),您可以这样解决您的网址:
http://localhost/get.php/id=2/get=row
这将调用get.php
。 id=2/get=row
部分将在$_SERVER["PATH_INFO"]
变量中提供,供您分割。
<强> mod_rewrite的强>
或者,您可以使用mod_rewrite根据预定义的模式映射URL,如下所示:
http://localhost/2/row
答案 1 :(得分:1)
您始终可以使用URL重写 如果你不喜欢在你的URL中获取变量但是在回答你的问题时?是标准的一部分
如果使用apache用户 .htaccess中的RewriteRule
答案 2 :(得分:1)
当用户为您的网站制作参数时,他 到urlencode这样的数据,因此,它将会是
http://test.com/?url=http%3A%2F%2Flocalhost%2Fsmaple%3Fid%3D1234