我有一个带有 php.exe 的简单本地服务器,并使用命令提示符启动服务器:
php -S localhost:80 -t "web/"
localhost/blog.php?id=1
localhost/blog/2023/10/01/blog-post
localhost/artist.php?id=1&work=2
localhost/artist/Vincent-van-Gogh/art/Sunflowers
首先,请注意,内置 Web 服务器仅用于开发和测试目的。它不应该用作服务网站的主要方式,因为它的设计没有必要的安全性、性能或稳定性。
其次,重要的是要明白你无法“让 URL 变得漂亮”;你能做的是告诉服务器如何响应一个漂亮的URL。
考虑到这一点,内置服务器的 PHP 文档给出了一个非常简单的“路由器脚本”示例 - 它查看请求的 URL,并决定如何处理它。这就是你需要写的脚本,基本上你想怎么写就怎么写。
如果您使用 Laravel、Symfony、CakePHP、Laminas 等框架,我们将为您提供该脚本。或者您可以找到一个用于此目的的库,例如 FastRoute。但最终,这些都只是定义一堆 if 语句的方法:“如果 URL 与此模式匹配,则运行此函数,或包含该文件”。