Нам необходимо предотвратить прямой доступ к файлам на нашем сайте для тех, кто просто вводит URL-адрес в своем браузере. Я заставил это работать, используя файл htaccess, и это нормально в IE и Safari, но по какой-то причине Firefox не сотрудничает. Я думаю, это как-то связано с тем, как Firefox сообщает о реферерах.
Вот мой код в файле .htaccess.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(my\.)?bigtimbermedia\.com/.*$ [NC]
RewriteRule \.(swf|gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx)$ http://my.bigtimbermedia.com/ [R,L]
Если вы хотите увидеть пример этого, попробуйте сначала получить доступ к этому ... http://my.bigtimbermedia.com/books/bpGreyWolvesflip/index.html
Он правильно блокирует его во всех браузерах.
Теперь, если вы перейдете по этому URL-адресу и нажмете ссылку, он будет работать в IE и Safari, но Firefox задыхается и кажется, что он зациклился.
Есть идеи, как я могу заставить это работать в Firefox? Спасибо!
Не могли бы вы просто использовать
RewriteCond %{HTTP_REFERER} !^%{HTTP_HOST}$ [NC]
Чтобы вы соответствовали тому, что машина считает хостом?
RewriteCond% {HTTP_REFERER}! ^http: // (мой.)? bigtimbermedia.com/. * $ [NC]
Не тестировав его - ваше правило перезаписи выглядит немного забавно - я бы запустил его через paros или fiddler и посмотрел, в чем разница между запросами, которые отправляет firefox, и IE, Opera или что-то еще, а также то, что перенаправляет ваша система отправляет обратно на самом деле.