我希望以某种方式实施.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]
这比我想的要容易得多,而且我的想法也归功于Andy Holmes
答案 0 :(得分: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]
给它一个去,是我唯一的其他建议
答案 1 :(得分:0)
RedirectMatch 403 ^.*/images/*\.jpg$
RedirectMatch 403 ^.*/images/*\.jpeg$
RedirectMatch 403 ^.*/images/*\.png$
RedirectMatch 403 ^.*/styles/*\.css$
RedirectMatch 403 ^.*/js/*\.js$
我不知道你是如何构建你的文件夹等但是尝试这个,显然会改变以适应你的文件夹结构。它应该允许图像显示在网站上,但不能直接访问
答案 2 :(得分: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]
答案 3 :(得分:-1)
将127.0.0.1更改为您的域名
编辑:
<FilesMatch "\.(?:js|css|jpg|png|jpg|jpeg)$">
Order allow,deny
Deny from all
</FilesMatch>
EDIT2:
我误解了你
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?{HTTP_HOST} [NC]
RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [NC,F,L]