我看到一个论坛(IPS)的URL方案如下:
www.example.com/index.php?/topic/12345
显示主题ID 12345。
我是php的新手,我想知道,他们到底做了什么来理解上面的请求要求主题ID12345?我只知道如何用$_POST
和$_GET
收集信息。以下是我对后者的尝试:
echo "The user wants to see the topic ID " . $_GET["topic"];
但这需要一个形式的URL
www.example.com/index.php?topic=12345
那么,他们是如何实现这一计划的呢?
有两种方法:
- 你可以使用url重写将web服务器上的url重写为带有查询变量的url(你可以在SO上找到很多关于url重写的信息)
- 您可以分析像
$_SERVER['REQUEST_URI']
这样的服务器变量来拆分和分析php脚本中的url。您仍然需要重写,以确保所有请求都通过您的脚本,并且不会转到找不到的页面
他们可能使用了类似于名为mod_rewrite
的apache模块的东西。CCD_ 5用于重写URL。在这种情况下?topic=12345正在被重写/翻译为topic/12345/。
branded3.com上有一篇不错的文章,其中概述了使用mod_rewrite
可以做的一些很酷的事情。您需要Create beautiful url’s with mod_rewrite
部分来了解如何使用它来创建外观更好的URL。