htaccess, чтобы разрешить загрузку из определенного пользовательского агента и HTTP Referrer

Я хочу разрешить загрузку некоторых файлов, если только пользовательский агент или реферер соответствуют следующим

Это пользовательские агенты uTorrent Bittorrent Transmission

Это http реферер www.niresh12495.com

Я пытаюсь следующий код, но показывает ошибку 500

RewriteCond %{HTTP_USER_AGENT} !^(*uTorrent*|*BitTorrent*|*Transmission*) [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://niresh12495.com/.*$      [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://niresh12495.com$ [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://www.niresh12495.com/.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://www.niresh12495.com$  [NC,OR]
RewriteRule ^*\.(dmg|torrent|pkg|rar|exe|zip|jpeg|jpg|gif|png|bmp|mp3|flv|swf|png|css|pdf|mpg|mp4|mov|wav|wmv|swf|css|js|iso)$ http://www.niresh12495.com [R,F,NC]

Где я не прав?

1 ответ

Решение

Есть несколько проблем.

  1. В ваших регулярных выражениях есть синтаксические ошибки. Вы используете * как подстановочный символ оболочки, но в регулярных выражениях он имеет другое значение: он только изменяет другой символ, обозначая "0 или более вхождений". То, что вы, вероятно, хотите .*, что означает "0 или более вхождений любого символа". Но вам это даже не нужно, если вы удалите начальный тег привязки ^,

  2. Ваш последний RewriteCond заканчивается OR флаг, который, вероятно, недействителен, так как никакой другой RewriteCond не следует за ним.

  3. Я думаю, что ваша условная логика неверна. У вас сейчас есть

не (uTorrent или BitTorrent или передача) ИЛИ не niresh12495.com ИЛИ не www,.niresh12495.com

но я думаю ты хочешь

не (uTorrent или BitTorrent или передача) И не niresh12495.com И не www.niresh12495.com

Поэтому я думаю, что вы хотите что-то еще, как это:

RewriteCond %{HTTP_USER_AGENT} !(uTorrent|BitTorrent|Transmission) [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.|)niresh12495.com(/|$) [NC]
RewriteRule .*\.(dmg|torrent|pkg|rar|exe|zip|jpeg|jpg|gif|png|bmp|mp3|flv|swf|png|css|pdf|mpg|mp4|mov|wav|wmv|swf|css|js|iso)$ http://www.niresh12495.com [R,F,NC]
Другие вопросы по тегам