正在删除影响php$_GET的查询字符串


Removing query string affecting php $_GET

我一直在寻找一种方法来完全删除查询字符串,以确保URL尽可能整洁,但我发现了这个论坛帖子,它说它对没有用处

则这些查询字符串页面将无法访问

  • 所以我的一般问题是,这会以某种方式影响PHP的$_GET变量吗

在我的应用程序中,我正在形成这样的URL:

示例.com/module/controller/action/arg1/value1/../。。

其中arg1和value1不是掩码查询字符串表示形式,它们是请求的其他特定键。

  • 当我删除查询字符串时,上面提到的结构可能有任何问题吗

编辑:

我正在将所有发送到应用程序的请求重新路由到我的index.php,这是我的应用程序的入口点,这些请求不以文件和/或文件夹的形式存在(想不出更好的说法)。从那里,应用程序解析目录部分并在内部进行路由(使用$_SERVER['REQUEST_URI'],这并不是说我不想寻找其他方法——我知道我可以使用parse_url();函数)。

当我有这样的URL时:

example.com/module/controller/action/arg1/value1?get_arg1=值1&get_arg2=value2

value1有问题,URL在我看来太难看了:)

  • 所以我的一般问题是,这会以某种方式影响PHP的$_GET变量吗?

  • 当我删除查询字符串时,上面提到的结构可能有任何问题吗?

论坛发帖者希望完全删除查询字符串和传递到页面的所有数据痕迹。这是一个坏主意,因为他们的网站将不再工作。

您所建议的内容采用查询字符串中的正常内容,并将其放入路径信息中。这是可以接受的,前提是您1)使用URL重写器将路径信息更改回服务器端的查询字符串,或者2)修改代码以使用路径信息。