У меня есть сервер LAMP + Wordpress, к которому я обращаюсь только с IP-адресом. Я не планирую получать доменное имя для сервера.
Я хочу знать, можно ли предотвратить хотлинкинг ресурсов, если у моего сервера нет доменного имени?
Прямо сейчас я настроил свой .htaccess, как показано ниже, но, похоже, он не работает.
IndexIgnore */*
php_flag zlib.output_compression Off
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+.)?11.22.33.44/ [NC]
RewriteRule \.(zip|gif|jpg|js|css|png)$ - [F]
Отредактируйте, чтобы добавить для @JennyD: я проверил access.log и не увидел реферера.
Мой apache2.conf определяет настраиваемый формат журнала под названием «комбинированный»:
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
На моих сайтах с включенной функцией "комбинированный" формат журнала доступа используется директивой:
CustomLog ${APACHE_LOG_DIR}/access.log combined
Вот что показывает мой журнал access.log:
12.34.56.78 - - [04/Jun/2013:11:19:02 +0200] "GET /wordpress/wp-includes/images/admin-bar-sprite.png?d=20111130 HTTP/1.1" 304 187 "http://11.22.33.44/wordpress/wp-includes/css/admin-bar.css?ver=20111209" "Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0"
Я не думаю что (.+.)?
должен быть там. В рабочей конфигурации я ожидал увидеть что-то вроде:
RewriteCond %{HTTP_REFERER} !^http://11.22.33.44/ [NC]