可以使用哪些其他get方法字符?除了问号?

时间:2011-04-12 08:11:59

标签: php get

正常得到: 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个问号。

3 个答案:

答案 0 :(得分:3)

您无法做什么,至少不使用&?作为分隔符。它们在URL中具有已定义的含义,并且不能超出该含义使用。重复字符将导致无效的URL。它可能适用于大多数浏览器,但这是不好的做法。

考虑坚持使用经典?param=value&param2=value2符号。你为什么要首先改变它?有具体原因吗?

如果你真的想要这样做,并且可以使用其他角色将参数彼此分开,可以使用这两种方法中的一种。

<强> PATH_INFO

如果您的Apache服务器上启用了AcceptPathInfo设置(通常是这样),您可以这样解决您的网址:

http://localhost/get.php/id=2/get=row

这将调用get.phpid=2/get=row部分将在$_SERVER["PATH_INFO"]变量中提供,供您分割。

<强> mod_rewrite的

或者,您可以使用mod_rewrite根据预定义的模式映射URL,如下所示:

http://localhost/2/row

Here是一个关于如何使用mod_rewrite的问题; Stack Overflow上有many more

答案 1 :(得分:1)

您始终可以使用URL重写  如果你不喜欢在你的URL中获取变量但是在回答你的问题时?是标准的一部分

如果使用apache用户 .htaccess中的RewriteRule

答案 2 :(得分:1)

当用户为您的网站制作参数时,他 urlencode这样的数据,因此,它将会是

http://test.com/?url=http%3A%2F%2Flocalhost%2Fsmaple%3Fid%3D1234