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