mod重写-www.example.com/folder/file的PHP$_GET问题?id=2个类型的URL


mod rewrite - PHP $_GET problems with www.example.com/folder/file?id=2 type URLs

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

www.example.com/folder/topic

工作正常!

但是当我在URL中添加一个参数时:

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

$_GET停止工作。它根本无法识别参数。我是不是错过了什么?在使用完整URL之前,该参数运行良好。

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

你的规则最终会看起来像:

RewriteRule from to [QSA]

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

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

如果你想让你的PHP URL"友好",你需要使用类似Apache的mod_rewrite之类的东西。在谷歌上搜索类似"apachemod_write友好url"的东西,你会得到很多关于这个主题的文章。

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

您是使用mod_rewrite还是通过重新组织文件结构来完成此操作?如果是前者,你的规则可能需要调整。

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

Zebra先生的答案是正确的。它将允许您继续使用查询字符串,就像您在URL末尾所做的那样,并且您不必以某种方式预测它的存在。