-4

我注意到在 Stackoverflow 中,基本上有 4-6 种不同的 URL。一种是针对问题,例如http://stackoverflow.com/questions/6831217/double-vs-decimal-in-mysql. 一种是用于用户个人资料页面,例如http://stackoverflow.com/users/1469954/cupidvogel. 一个是针对新问题,例如http://stackoverflow.com/questions/ask等。

对于每个页面请求,服务器都会根据需要发送一个页面。现在我如何在服务器端实现这一点?如果有一个包罗万象的 PHP 脚本,它将解析 URL 以记录客户端请求的页面类型(例如,如果它解析 URL 并发现客户端正在请求主题页面,它可能会提取来自 URL 的问题 id/文本,查询数据库以获取相关数据,构建 HTML 并发送它)并相应地发送,或者每种页面类型应该有单独的脚本?对于任何一个,我该如何为此配置 PHP/Apache?

如果我有一个类似foo.php的页面,我可以通过它看到它http://localhost/foo.php。但是,如果我希望它捕获http://localhost/foo.php以及http://localhost/foo.php/ask/questions等,我该怎么办?

4

1 回答 1

1

mod_rewrite。这可以使用重写规则来完成,该规则可以放在 .htaccess 文件或其他 Apache conf 文件中。举个例子:

RewriteRule users/(\d+)/(\w+) user.php?id=$1&uname=$2

这会将 users/1469954/cupidvogel 转换为 user.php?id=1469954&uname=cupidvogel。如果我知道一个好的教程(编辑:这个看起来不错),我会向你指出一个教程。

于 2012-09-21T06:28:14.297 回答