0

我想使用$_GET但不想使用查询表单传递参数:

showevent.php?event=usa 

应该显示在 url 中而不是希望

site.com/events/usa

对于配置文件:

site.com/username
4

1 回答 1

1

浏览器不知道如何格式化这样的 URL。通过 GET 提交表单的标准是查询字符串,这是您的浏览器唯一可以做的事情。两种选择:

  1. 通过 Javascript 构建 URL 并以编程方式重定向浏览器。这具有需要支持 Javascript 的客户端的缺点。
  2. 通过普通查询字符串提交,然后在服务器上重写 URL 并重定向客户端。例如:

    header('Location: /events/' . $_GET['event']);
    exit;
    

    这样做的缺点是每次需要两次往返服务器,并且未重写的 URL 可能会在用户的浏览器中短暂闪烁,但最终会为您提供漂亮的 URL。

您可能需要两者的组合,其中 2. 作为非 Javascript 客户端的后备。

于 2013-01-06T12:17:29.870 回答