我希望有一个正则表达式,只允许访问私人文件夹中的文件。到目前为止,这是我的代码:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !(.*)(/public/)(.*)
#RewriteCond %{REQUEST_FILENAME} !-f #not active in this example
RewriteRule . index.php [L]
它可以正常工作,因为我可以看到它工作正常但有一件事我想知道:
如果有像/localhost/test/public
这样的目录结构并且我正在调用相同的URL我可以看到文件夹内容,但是如果没有公共文件夹localhost/test/
并且我正在调用{ {1}}它将导致/localhost/test/public
为什么不显示404页面?
答案 0 :(得分:0)
我认为UnskilledFreak是对的:
如果你没有在URL的末尾加上斜杠(/),服务器会“认为”你想要一个文件并检查它是否存在。如果是一个目录,它会自动使用;如果没有,你的文件名重写将匹配并重定向到index.php