.htaccess热链接保护不起作用

时间:2013-04-02 10:36:46

标签: php apache .htaccess hotlinking

你可以纠正&请告诉我。我的问题是我的.htaccess热链接保护不起作用。我在.htaccess支持的共享服务器上。 (SEO友好链接工​​程)

我的域名类型为http://www.mydomain.p.hthttp://mydomain.p.ht

我的两个试验来源是:

  1. http://www.htaccesstools.com/hotlink-protection/
  2. 计算器
  3. 我没有忘记用我的真实域名替换mydomain

    我的.htaccess

    RewriteEngine On
    RewriteBase /
    
    # hotlink protection
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.p.ht [NC]
    RewriteRule \.(jpg|jpeg|png|gif|css)$ - [NC,F,L]
    
    # compress text, html, javascript, css, xml:
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    
    # File caching is another famous approach in optimizing website loading time
    <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
    Header set Cache-Control "max-age=2592000"
    </FilesMatch>
    
    #SEO friendly linking
    ...
    ...
    

    我也试过

    1

    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.p.ht [NC]
    RewriteRule \.(flv)$ - [NC,F,L]
    

    2

    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain\.p\.ht/.*$ [NC]
    RewriteRule .*\.(jpg|jpeg|png|gif)$ - [F,NC,L]
    

1 个答案:

答案 0 :(得分:1)

您的方法正确且工作正常。由于您已为这些文件启用了缓存,因此http://htaccesstools.com/test-hotlink-protection很可能会向您显示图像的缓存快照。如果你真的想测试它在你的localhost或mydomain.p.ht主机以外的其他主机上创建一个html文件并包含这一行(用实际的gif文件的路径替换/ images / home.gif`): / p>

<img border="0" src="http://mydomain.p.ht/images/home.gif">

查看图片是否显示在浏览器中。如果您在执行此操作时打开了Firbug网络选项卡,则应该看到上面图像的Forbidden 403状态。