使用 .htaccess 防止同一网站内的热链接

使用 .htaccess 防止同一网站内的热链接

我面临的问题是如何防止网站内部的热链接。我想要做的是阻止 www.website.com/user/xxx 热链接 CSS,但允许 www.website.com/user/aaa 使用 .htaccess 的 CSS。

-用户 xxx 和用户 aaa 都在使用 www.mywebsite.com/css.css css 文件,我只想允许用户 aaa 使用它,而不允许用户 xxx 使用

到目前为止,我能想到的办法是在 www.mywebsite.com 中放置一个 .htaccess,以仅允许用户 aaa 热链接 css。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.website.com/user/aaa [NC]
RewriteRule \.(css|jpg|jpeg|png|gif)$ http://website.com/donotsteal [NC,R]

当我将其放入 .htaccess 时,它会阻止 www.website.com/user/xxx 和 www.website.com/user/aaa 热链接 css

我想要做的是只允许此页面 www.website.com/user/aaa 使用 css 并阻止其他任何内容对其进行热链接。

答案1

您的 RewriteRule 中缺少标志 [L] 和/或 [F] http://altlab.com/htaccess_tutorial.html我不确定那会有什么不同吗?

中的 !*重写条件 %{HTTP_REFERER} ^或者重写条件 %{HTTP_REFERER} !^\ 反转逻辑条件。

所以

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://img148.imageshack.us/img148/237/hotlinkp.gif [L]

说如果是“!“ 不是然后是 mysite“[L]”不要允许它,这是一个双重否定,表示允许它来自您的网站。

更正 [L] 是 LAST 的标志 - [F] 是禁止的,我需要检查我的眼镜。

相关内容