如何使用 page.com/browse/ 而不是 page.com/browse.php

How can I use page.com/browse/ instead of page.com/browse.php

我想知道如何使用这种 "file browsing"。 现在我所有的小 PHP-Web 项目都通过直接访问 PHP 文件来工作:

My Programs: http://website.de/profil.php or http://website.de/news.php

但我注意到 Wordpress 和其他网站只有文件夹(没有索引文件)。 例如:

https://wordpress.org/themes/ <- works

https://wordpress.org/themes/index.php <- searches for "index.php" or http://localhost/wordpress/2016/05/11/hello-world/ opens a event, without a '2016' folder

但另一方面:

https://wordpress.org/support/index.php = https://wordpress.org/support/

这背后的技术是什么? PHP?我怎么能在我的网站上使用它;这对我来说很重要。

我确信在某个地方有一个很好的指南,但我什至不知道 google 有什么用。

尽管您可以通过放置一个示例来小范围地模仿 "pretty" URLs。 index.php 在文件夹中,真正的 gem 出现在您使用 Web 服务器重写以有效地 "translate" 一个不错的 URL 到服务器可以读取的内容时。

在 Apache 服务器上,mod_rewrite is the module behind this. mod_rewrite rules go in a .htaccess 文件,并允许您创建非常强大的自定义 URL 结构。

如果您查看测试 Wordpress 安装中的 .htaccess 文件,您会看到重写规则将站点上的 每个 请求指向 index.php.

在内部,Apache 然后将看起来像是在多个文件夹中的 post URL 翻译成类似 http://localhost/wordpress/index.php?year=2016&month=05&date=11&post_name=hello-world. The visitor will only ever see the "pretty" URL: http://localhost/wordpress/2016/05/11/hello-world/

的内容

从这里开始,Wordpress 然后在内部处理 URL 以显示正确的 post、日期存档、类别存档等,基于它可以在这些查询字符串变量中访问的内容(在 PHP,这些都可以在 $_GET 超全局变量中获得,例如 $_GET["year"].

同样值得注意的是,Wordpress 不会 将其所有重写逻辑直接放入 .htaccess 中,为了简单起见,它在内部管理大部分内容,这就是它配置 .htaccess 的原因。 htaccess 到 "send everything through."

要阅读的其他主题包括 mod_rewrite and .htaccess :)