我正在更改我的网站以显示友好的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=2
中print_r($_GET)
会得到什么?
Zebra先生的答案是正确的。它将允许您继续使用查询字符串,就像您在URL末尾所做的那样,并且您不必以某种方式预测它的存在。