RegEx只显示私人文件夹中的项目

时间:2014-11-12 18:10:00

标签: regex .htaccess

我希望有一个正则表达式,只允许访问私人文件夹中的文件。到目前为止,这是我的代码:

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页面?

1 个答案:

答案 0 :(得分:0)

我认为UnskilledFreak是对的:

  

如果你没有在URL的末尾加上斜杠(/),服务器会“认为”你想要一个文件并检查它是否存在。如果是一个目录,它会自动使用;如果没有,你的文件名重写将匹配并重定向到index.php