【问题标题】:htaccess rules to block all but serverhtaccess 规则阻止除服务器之外的所有内容
【发布时间】:2011-06-15 00:20:37
【问题描述】:

寻找一些 htaccess 重写规则来阻止对除服务器本身之外的目录的所有访问。这是一个充满图像和 Flash swf 文件的目录。是的,我知道不希望直接访问其自己的目录中的文件有点奇怪,而是允许用户在受保护目录之外的其他 html 中引用它时看到它,但这就是我所追求的。我尝试了几种不同的方法,如下所示:

# send them to index.php
Options +FollowSymlinks
RewriteEngine on
#RewriteRule ^(.*)$ ../User/ [NC]
#RewriteRule ^(.*)$ [R=301,L,NC]

# no one gets in here!
#deny from all

Options All -Indexes

<Limit GET POST PUT>
order deny,allow
deny from all
allow from 192.168.0.0/33
</Limit>

他们似乎都没有真正做我想做的事。其中一些会阻止对所有内容的访问,包括服务器本身。其他将请求重定向到另一个页面,但由于它保持相同的 url,用户被重定向到的“页面”上的链接将不起作用。

如果可能的话,我什至不想发出 404 警告,因为虽然这不允许用户访问该目录,但用户仍然会知道该目录存在。

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    您可以简单地使用这一行规则来做到这一点:

    RewriteRule ^mydir/ - [L,R=404,NC]
    

    这样/mydir/ 下的所有文件都会向您的访问者生成 404 错误,但您的服务器仍然可以访问这些文件。

    【讨论】:

    • 这条规则会直接进入public_html下的.htaccess文件
    • 完美。你知道,当提问者没有表现出批准/投票答案的礼貌时,我总是很困扰。你在问完问题六分钟后回复了。六年后,它仍然有用。
    • 感谢@AlanM,OP 在得到答案后从网站上消失了 :)
    猜你喜欢
    • 2012-12-05
    • 2021-06-03
    • 2017-03-28
    • 2017-06-21
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多