如何在PHP中创建http://stackoverflow.com/posts/1807421/edit这样的URL?

Ste*_*ven 2 php url filenames path

当您在stackoverflow.com上编辑问题时,您将被重定向到这样的URL:

https://stackoverflow.com/posts/1807421/edit

但通常,它应该是

https://stackoverflow.com/posts/1807491/edit.php

要么

https://stackoverflow.com/posts/edit.php?id=1807491

怎么样

https://stackoverflow.com/posts/1807421/edit 创建?

我知道Stackoverflow.com不是使用PHP创建的,但我想知道如何在PHP中实现这一点?

Pau*_*xon 7

使用apache和PHP,您可以使用apache配置中的mod_rewrite规则执行一个示例,如下所示:

RewriteEngine On
RewriteRule ^/posts/(\d+)/edit /posts/edit.php?id=$1
Run Code Online (Sandbox Code Playgroud)

这将查找"干净"表单的URL,然后重写它们,以便它们在内部重定向到特定的PHP脚本.

通常这样的规则用于将所有请求路由到公共控制器脚本,这可能会像实例化"PostsController"类并要求它处理编辑请求.这是大多数PHP应用程序框架的常见功能.