如何使自述文件无法通过Web访问

时间:2013-12-28 23:05:04

标签: git .htaccess web

我有一个纯文本自述文件,位于我网站的根目录中,该文件由Git控制。我喜欢在那里有自述文件,因为GitHub会在查看回购时显示它。

但是,当我转到mysite.com/readme.md时,我会收到自述文件。我不希望公众可以访问此文件。

有效地禁止公众访问此自述文件而不将文件移离项目根目录的最佳方法是什么?

1 个答案:

答案 0 :(得分:5)

取决于github如何访问它,有很多不同的方法,你可以在文档根目录(或你的自述文件所在的位置)的htaccess文件中添加一些内容。

使用mod_authz:

<Files "readme.md">
    Order Deny,Allow
    Deny from all
</Files>

这将为所有请求返回/readme.md禁止的403。如果您想将特定IP列入白名单,可以将其添加到Deny from all行上方

Allow from 12.34.56.78

将白名单从12.34.56.78 IP发送请求。

使用mod_rewrite(它提供了几个选项)

RewriteEngine On
RewriteRule ^readme\.md$ - [L,F]

这也是一样的。要将IP列入白名单,请在RewriteRule行之前添加:

RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$

您还可以通过将重写标记中的F替换为R=404来返回404而不是403 Forbidden。如果你需要将引用者列入白名单,你可以添加一个条件(在rewriterule行的正上方),如下所示:

RewriteCond %{HTTP_REFERER} !^https?://github\.com/ [NC]

如果链接嵌入github.com的页面,则允许用户访问readme.md文件。