htaccess文件重写工作在任何域


htaccess file with Rewrite to work on any domain

我试图阻止访问特定文件和特定目录中的文件,仅允许在服务器本身包含或调用等时访问它们。

目前我有一个htaccess文件如下所示在'http://www.thedomain.com/.htaccess'阻止访问'http://www.thedomain.com/specific_file.php'

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www.)?thedomain.com/.*$ [NC]
RewriteRule specific_file.php$ / [R=302,L]

并在'http://www.thedomain.com/thedir/.htaccess'中添加如下所示的htaccess文件以阻止对'http://www.thedomain.com/thedir/'中所有文件的访问

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www.)?thedomain.com/.*$ [NC]
RewriteRule .(gif|jpg|png|css|js|php|inc)$ / [R=302,L]

我希望能够在多个域中使用这些htaccess文件,而无需更改列出的域名。这可能吗?

在一个侧面说明,这段代码是拼凑在一起,所以任何关于改进它的建议将不胜感激。由于

尝试使rewritecsecond的最后一部分使用相对url而不是绝对url,那么它应该可以跨任何域工作

检查引用是不安全的方式我建议您在根路径上方的层中上传您的特定文件,在这种情况下只有您可以访问上传的文件(直接寻址),攻击者无法访问它