Apache .htaccess重定向直接访问

Apache .htaccess重定向直接访问,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我试图阻止用户直接访问我网站上的文件。基本上,我在/images/header.jpg中有一个图像 我正在尝试使用.htaccess转发所有直接访问该文件的尝试”http://www.domain.com/images/header.jpg“到我的404页面,但我希望在从源代码调用时仍能加载图像。使情况复杂化的是,我实际上被重定向到另一个images文件夹header.jpg 因此,最终预期的效果将是: 用户加载页面->调用header.jpg并重定向到new_header.jpg 用户尝试从他

我试图阻止用户直接访问我网站上的文件。基本上,我在/images/header.jpg中有一个图像

我正在尝试使用.htaccess转发所有直接访问该文件的尝试”http://www.domain.com/images/header.jpg“到我的404页面,但我希望在从源代码调用时仍能加载图像。使情况复杂化的是,我实际上被重定向到另一个images文件夹header.jpg

因此,最终预期的效果将是:

用户加载页面->调用header.jpg并重定向到new_header.jpg 用户尝试从他们的站点链接header.jpg->他们被重定向到我的404页面

我尝试了一些条件,但没有达到预期的效果

RewriteCond %{REQUEST_URI} ^/images
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule ^(.*\header.jpg(/.*)?)$ new_header.jpg [L,QSA]

我认为这样的事情应该适合你:

RewriteEngine On
#Redirect all request for things in /images that don't come from website to 404 page (assumed to be /404 in this case) - Prevents hotlinking
RewriteCond %{REQUEST_URI} ^/images
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain\.com [NC]
RewriteRule ^.*$ /404 [L,R=404]

#Redirect requests for /images/header.jpg to new_header.jpg image
RewriteRule ^/?images/header.jpg /path/to/other/images/new_header.jpg [L]

这些只是重写条件,您真的有遵循它们的规则吗?抱歉,是重写规则^(.*\header.jpg(/.*)$new_header.jpg[L,QSA]嗯,第一个块似乎工作得很好,但是header.jpg到new_header.jpg根本没有运行..非常奇怪,你能提供关于这两个文件的位置以及你是如何在那里编写重写规则的信息吗?