我正在用PHP构建一个路由器。我想知道如何绘制/配置文件?Id =3 ~/user/3。有没有办法在PHP中做到这一点,没有。htaccess?
您可以做的是创建一个基本入口点来捕获所有url,例如在Symfony中。
这个入口点可以是项目根目录下的app.php
文件。您可以通过http://yourdomain.com/app.php/user/3
这样的url访问它。
此入口点将使用app.php
后的URL部分调用相应的控制器,提取用户ID并呈现HTML。
然后,在apache配置中创建一个重写规则,该规则将在所有url前面加上app.php
。http://yourdomain.com/user/3
将被apache映射到http://yourdomain.com/app.php/user/3
。
这样一个重写规则的例子可以在这里找到。
之后,如果你想支持其他路由,如/myblog/great-entry
或其他任何路由,你可以从PHP端处理它们。您不必再编辑apache配置,因为每个URL都被您的app.php
文件捕获。
URL需要从缩短的形式重写为要传递给PHP的查询字符串。你不能在PHP中接受/user/3,因为它不会在$_GET超全局数组中填充。
你不需要把重写规则放在。htaccess文件中,因为它们是每个目录继承的。但是你仍然需要mod_rewrite
当你使用PHP时,我假设你没有在CLI上运行它,所以你必须使用Apache或Nginx。在这种情况下,运行mod_rewrite并将规则放在配置中的问题是什么?