我试图将访问限制为仅从有效目录中提供索引页面。
以下.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
.
此代码的重点是将所有请求重定向到存在的最低级别目录,以便查看者只能访问索引页面。
这需要是动态的,因此任何新的或现有的目录都可用。
一个奇怪的问题,但我相信一个可行的解决方案对很多人来说非常有用。