Назад | Перейти на главную страницу

Как перенести правила из .htaccess в конфигурационный файл главного сервера httpd?

У меня ок. 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"