我有一个纯文本自述文件,位于我的网站的根目录中,该文件由Git控制.我喜欢那里有自述文件,因为GitHub会在查看回购时显示它.
但是,当我去的时候mysite.com/readme.md,我得到了自述文件.我不希望公众可以访问此文件.
有效地禁止公众访问此自述文件而不将文件从项目的根目录移开的最佳方法是什么?
许多不同的方式取决于github如何访问它,你会在文档根目录(或自述文件所在的位置)的htaccess文件中添加一些内容.
使用mod_authz:
<Files "readme.md">
Order Deny,Allow
Deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)
这将返回禁止403 的所有请求到/readme.md.如果要将特定IP列入白名单,可以Deny from all在行上方添加:
Allow from 12.34.56.78
Run Code Online (Sandbox Code Playgroud)
这将把12.34.56.78 IP发送的请求列入白名单.
使用mod_rewrite(它提供了几个选项)
RewriteEngine On
RewriteRule ^readme\.md$ - [L,F]
Run Code Online (Sandbox Code Playgroud)
这也是一样的.要将IP列入白名单,请在该RewriteRule行之前添加:
RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$
Run Code Online (Sandbox Code Playgroud)
你也可以通过替换F重写标志来返回404而不是403 Forbidden R=404.如果你需要将引用者列入白名单,你可以添加一个条件(在rewriterule行的正上方),如下所示:
RewriteCond %{HTTP_REFERER} !^https?://github\.com/ [NC]
Run Code Online (Sandbox Code Playgroud)
这将允许人们访问readme.md文件,如果链接嵌入在页面上github.com.