.htaccess или httpd.conf - PullRequest
       9

.htaccess или httpd.conf

4 голосов
/ 11 ноября 2009

Мне нужно сделать работу по переписыванию URL.

Я не знаю, должен ли я поместить код в .htaccess или httpd.conf?

EDIT

Каков диапазон действия .htaccess? Отразится ли он на всех запросах или только на запросах к определенному каталогу, в котором он находится?

Ответы [ 4 ]

9 голосов
/ 11 ноября 2009

Если вам не нужно часто менять правила, поместите их в httpd.conf и отключите переопределение в верхнем каталоге, к которому применяются ваши правила

AllowOverride None

Без переопределения ваш apache не будет проверять каждый каталог на наличие файлов .htaccess, что приводит к уменьшению накладных расходов для каждого запроса.

Всякий раз, когда вам нужно изменить свои правила, вам придется перезапускать ваш сервер apache, если вы поместите его в свой httpd.conf, в отличие от того, что они мгновенно обнаруживаются в файлах .htaccess, поскольку он читает их все при каждом запросе. 1006 *

Вы можете легко сделать это, используя изящный перезапуск с помощью инструмента apachectl, чтобы избежать обрезки текущих запросов.

apachectl graceful

Если вы не собираетесь отключать переопределение, вы также можете использовать только .htaccess.

Изменить в ответ на ваши изменения:

Скажем, у вас есть запрос на www.example.com/dir1/dir2/dir3/file

Apache будет искать файл .htaccess во всех 3 из этих каталогов и корень для правил, применяемых к запросу, если у вас разрешено переопределение.

3 голосов
/ 11 ноября 2009

Простота использования и ремонтопригодность IMO (просто перейдите в каталог, который вы хотите, как любой пользователь с правами доступа) = .htaccess, но это анализируется повторно по сравнению с анализом один раз в httpd.conf, где ваш über-high объем будет лучше всего установлен .

1 голос
/ 01 декабря 2016

Здесь есть три вопроса с точки зрения «лучше»:

  • производительность
  • управление
  • безопасность

.htaccess медленнее, сложнее в управлении и потенциально менее безопасен. Если у вас есть доступ к httpd.conf, то размещение правил там может быть проще (в одном месте), быстрее («AllowOverrides None» означает, что сервер не ищет текущий каталог и любые родительские каталоги для файла переопределения) анализировать и следовать), и поскольку файлы .htaccess отсутствуют в каталоге веб-сайта, их нельзя редактировать (и, если они будут созданы, будут игнорироваться).

0 голосов
/ 11 ноября 2009

Вы можете использовать оба из них. ИМХО, .htaccess будет немного лучше

...