Apache mod_rewrite - 如何从url隐藏$ _GET变量

时间:2010-09-02 08:56:48

标签: php apache mod-rewrite redirect get

当我打电话给页面时

http://localhost/books-123-name.html?language_id=1

在浏览器中显示以下链接:

http://localhost/books-123-name.html

但保留值 language_id = 1

如何做到这一点?

感谢。

3 个答案:

答案 0 :(得分:0)

简而言之,你不能。

浏览器需要那些值才能读取它们。

您可以尝试阅读它们,对它们执行某些操作,然后重定向到没有参数的页面。

或使用POST

但更重要的是,为什么?

答案 1 :(得分:0)

有几种方法可以存储有关GET参数以外的请求的信息。一个是使用cookie,你可以将language_id存储在cookie中。使用cookie的特殊情况是使用会话。您还可以在POST请求中传递language_id,因为POST参数对用户不可见。您也可以使用mod_rewrite仍然使用GET参数,但要使它们更漂亮。

答案 2 :(得分:0)

jakenoble表示使用POST

或者也许你可以使用不同的网址模式,比如

  

http://localhost/{human-readable-language}/books-123-name.html

e.g。 http://localhost/en/books-123-name.html

  

http://localhost/books-123-name.html?language_id={languade-id}

e.g。 http://localhost/books-123-name.html?language_id=1