У меня ок. 500 RewriteCond %{HTTP_REFERER}
правила в моем .htaccess
файл, чтобы заблокировать сайты-рефереры спама.
Строка правил следующая:
RewriteCond %{HTTP_REFERER} hol\.es [NC,OR]
RewriteCond %{HTTP_REFERER} hys\.cz [NC,OR]
RewriteCond %{HTTP_REFERER} zzz\.com\.ua [NC,OR]
RewriteCond %{HTTP_REFERER} hypersito\.com [NC,OR]
RewriteCond %{HTTP_REFERER} tode\.cz [NC,OR]
and many more similar lines
Теперь из-за проблем с производительностью мне посоветовали переместить эти правила в файл конфигурации главного сервера httpd.
Я не эксперт в этой области, может кто-нибудь посоветует мне, как это сделать?
У меня есть доступ и к WHM, и к оболочке.
Я поискал в сети и обнаружил, что файл находится в /etc/httpd/conf
каталог. Когда я открыл httpd.conf
файл, он содержал 300+ строк.
Куда мне добавить эти RewriteCond %{HTTP_REFERER}
правила в httpd.conf
файл и как?
mod_rewrite ведет себя немного иначе, когда используется непосредственно в конфигурации сервера (или виртуального хоста), в отличие от .htaccess
(или каталог контекст).
Однако эти конкретные директивы должны работать без изменений в конфигурации сервера.
На самом деле не имеет значения, где в конфигурации сервера находятся эти директивы, если вы их не размещаете внутри другая группа директив. Ищите логический пробел в директивах. Директивы блокировки должны быть указаны как можно раньше после настройки основного сервера. (Однако, как уже говорилось, порядок не обязательно имеет значение, поскольку модули Apache в любом случае работают независимо и в заранее определенном порядке.)
Однако вместо того, чтобы размещать эти директивы непосредственно в основном файле конфигурации, я бы создал отдельный файл конфигурации только для этих директив (например, block-referer.conf
) и включите этот файл в основную конфигурацию, используя Include
директива. Например:
Include /usr/local/apache2/conf/block-referer.conf
Ссылка:
https://httpd.apache.org/docs/2.4/mod/core.html#include
ОБНОВИТЬ: Поскольку вы, похоже, используете cPanel, может быть предпочтительнее добавить эти директивы в существующий включаемый файл, поскольку, как предупреждение в httpd.conf
состояния:
Прямые изменения в файле конфигурации Apache могут быть потеряны при последующей регенерации файла конфигурации.
:
Также можно добавлять пользовательские директивы в различные файлы "Include", загружаемые этим httpd.conf.
Взгляните на следующие два включаемых файла:
Include "/usr/local/apache/conf/includes/pre_virtualhost_global.conf" Include "/usr/local/apache/conf/includes/pre_virtualhost_2.conf"