【问题标题】:Removing query string affecting php $_GET删除影响 php $_GET 的查询字符串
【发布时间】:2013-08-26 15:29:34
【问题描述】:

我一直在寻找一种方法来完全删除查询字符串,以确保 URL 尽可能整洁,但我找到了 this forum post,它说它没有用

那么那些查询字符串页面将无法访问

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

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

example.com/module/controller/action/arg1/value1/../..

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

  • 当我删除查询字符串时,上述结构是否可能有任何问题?

编辑:

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

当我有这样的网址时:

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

value1 出现问题,并且 URL 在我的标准中太丑陋了 :)

【问题讨论】:

    标签: php mod-rewrite url-rewriting query-string


    【解决方案1】:
    • 所以我的一般问题是这会以某种方式影响 PHP 的 $_GET 变量吗?

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

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

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

    【讨论】:

    • 您在 1) 和 2) 中的回答已经完成。我正在解析内部使用的路径,并根据需要重写请求 atm。唯一的事情是我不想在? 之后显示查询字符串,以便将 example.com/module/controller/action/arg1/value1?get_arg1=value1&get_arg2=value2 转换为 example.com/module/controller /action/arg1/value1 并在 $_GET 变量中有 get_arg1=value1&get_arg2=value2
    • 这听起来像是您的 URL 重写器的问题。
    • 您能否进一步评估一下我的应用程序有什么问题?
    • 不知道自己在做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    相关资源
    最近更新 更多