删除目录名称和php文件扩展名

时间:2017-03-13 18:08:52

标签: php apache .htaccess mod-rewrite url-rewriting

我已经尝试了几种在我的.htaccess文件中添加两条规则的方法,但是我无法让它工作。

我想删除.php文件扩展名,但我也想删除目录/页面显示在网址中。

我的目录结构如下:

/
-/errors/
--/401.php

-/pages/
--/home.php
--/about.php
--/contact.php

-/includes/
--/header.php
--/footer.php

我的.htaccess文件是这样的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 /errors/404.php

我应该在我的.htaccess文件中写什么才能使它工作?

我尝试过以下操作,但它似乎无法正常工作:

RewriteRule ^pages(/.*|)$ $1 [L,NC]

1 个答案:

答案 0 :(得分:0)

在您的网站根.htaccess中,您可以使用此规则:

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/pages/$1.php -f
RewriteRule ^([^/]+)/?$ pages/$1.php [L]