0

我试图将访问限制为仅从有效目录中提供索引页面。

以下.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.

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

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

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

4

0 回答 0