2

我想.htaccess以一种方式实现,这样我的某些文件类型就像.js.css不能通过直接访问一样打开www.example.com/path/to/style.css。这应该是 403 错误,但是如果需要,浏览器可以读取此文件。

这是我实现的代码,它适用于本地服务器,但当我将页面上传到主服务器时不起作用

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]

编辑:我刚刚尝试并尝试了这个,它对我有用!

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]

这比我想象的要容易得多,而且我的想法也归功于安迪霍姆斯

4

4 回答 4

0
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com.*$ [NC]
RewriteRule \.(png|jpg|jpeg|css|js)$ - [F,NS,L]

试一试,这是我唯一的其他建议

于 2013-10-28T00:02:45.703 回答
0
RedirectMatch 403 ^.*/images/*\.jpg$
RedirectMatch 403 ^.*/images/*\.jpeg$
RedirectMatch 403 ^.*/images/*\.png$
RedirectMatch 403 ^.*/styles/*\.css$
RedirectMatch 403 ^.*/js/*\.js$

我不知道你是如何组织你的文件夹等的,但试试这个,显然会改变以适应你的文件夹结构。它应该允许在网站上显示图像,但不能直接访问

于 2013-10-28T00:16:01.280 回答
0

这是我的答案,将 mydomain.com 添加为另一个域,从字面上看,您可以添加任意数量的域,并且可以添加每个 apache 服务器的相同 .htaccess

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]
于 2013-10-28T00:42:56.150 回答
-1

将 127.0.0.1 更改为您的域名

编辑:

<FilesMatch "\.(?:js|css|jpg|png|jpg|jpeg)$">
Order allow,deny
Deny from all
</FilesMatch>

编辑2:

我误解了你

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?{HTTP_HOST} [NC]
RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [NC,F,L]
于 2013-10-27T23:43:53.443 回答