如何从includes文件夹中的所有url中删除子目录和.php扩展名



我已经搜索了很多"如何从url中删除子目录",大多数答案都很微妙,因此无法应用于我的场景。

这是我能得到的最接近简洁答案:

删除子目录和文件扩展名

哪个有问题:

如果我有site.com/page/about.php

如何删除子目录和文件扩展名?

示例:site.com/about

并提供了答案:

Options +FollowSymLinks
RewriteEngine On 
RewriteRule ^about(/?)$ /page/about.php [NC,L]

我的场景和期望的结果非常相似,我把所有的"页面"都放在一个包含文件夹中,例如:

site.com/includes/home.php
site.com/includes/about.php
site.com/includes/page3.php

我希望这些文件(以及包含文件夹中存在的任何文件)可以在URL上访问,比如:

site.com/home
site.com/about
site.com/page3

我认为这就是解决方案:

RewriteEngine On
# Remove sub directory from URL
RewriteRule ^([^.]+)/?$ includes/$1.php
# Remove file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

最新更新