PHP $ _GET www.example.com/folder/file?id=2类型网址存在问题

时间:2008-10-04 17:24:19

标签: php mod-rewrite

我正在更改我的网站以显示如下友好网址:

www.example.com/folder/topic

工作正常!

但是当我向URL添加参数时:

www.example.com/folder/topic?page=2

$_GET停止工作。它根本不识别参数。我错过了什么吗?在使用完整的URL之前,该参数工作正常。

5 个答案:

答案 0 :(得分:9)

如果这是一个mod_rewrite问题,听起来像是这样,你可以将[QSA]标志添加到你的mod_rewrite规则中,将查询字符串附加到重写的URL而不是丢弃它。

您的规则最终会如下:

RewriteRule from to [QSA]

答案 1 :(得分:4)

如果您正在使用mod_rewrite,那么您的规则就会被破坏。查询字符串未被传递,或者mod_rewrite正在丢弃超过 / topic 的所有内容。

尝试添加您可以执行的规则: www.example.com/folder/topic/2

答案 2 :(得分:0)

如果你想让你的PHP URL“友好”,你需要使用类似Apache的mod_rewrite。谷歌类似“apache mod_write友好网址”,你会得到很多关于这个主题的文章。

答案 3 :(得分:0)

  

我正在更改我的网站以显示友好的网址

您是使用mod_rewrite还是重新组织文件结构?如果是前者,则可能需要调整您的规则。

如果是文件重组,那么print_r($_GET) www.example.com/folder/topic?page=2中的{{1}}会得到什么?

答案 4 :(得分:0)

MrZebra的回答是正确的。它将允许您像在URL末尾那样继续使用查询字符串,而不必以某种方式预测其存在。