如何从包含文件夹中的所有URL删除子目录和.php扩展名?

时间:2013-09-02 08:36:31

标签: .htaccess mod-rewrite

我已经搜索过如何从网址中删除子目录'很多,大部分答案都是相当细微的,因此无法应用到我的场景中。

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

Remove sub directory and file extension

有哪个问题:

  

如果我有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

我希望这些文件(以及包含文件夹中存在的所有文件)可以在以下网址访问:

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

1 个答案:

答案 0 :(得分:0)

我认为这是解决方案:

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]