使用.htaccess,如何从URL中删除文件和不存在的目录

时间:2013-08-30 16:57:22

标签: .htaccess mod-rewrite

我试图限制只访问有效目录中的索引页面。

以下.htaccess文件部分有效,但效果不尽如人意。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)/
RewriteRule ^ %1 [R]

示例:

example.com/dir1/
example.com/dir2/
example.com/dir2/sub1/
example.com/dir2/sub1/page.html

请求example.com/dir1/存在,请勿重定向。

请求example.com/dir1/sub1/不存在,请删除sub1/

请求example.com/dir1/page.html不存在,请删除page.html

请求example.com/dir2/sub1/page.html已存在,但仍会移除page.html

请求example.com/1/2/3/4/5/不存在,请删除1/2/3/4/5

我目前所拥有的.htaccess,在删除每个目录级别后重定向,因此向服务器发出多个请求。我知道重复规则的RewriteRule N标记,但尝试使用该标记始终会产生500 internal server error

此代码的重点是将所有请求重定向到存在的最低级别目录,以便查看者只能访问索引页。

这需要是动态的,因此任何新的或现有的目录都可用。

一个奇怪的问题,但是对很多人来说,一个可行的解决方案非常有用。

0 个答案:

没有答案