2009-11-11 2 views
4

Мне нужно выполнить работу по перезаписи url..htaccess или httpd.conf

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

EDIT

Что диапазон поле действует .htaccess? Повлияет ли это все запросы или запросы только к определенной директории он находится?

ответ

9

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

AllowOverride None 

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

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

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

apachectl graceful 

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

Редактировать в ответ на ваши изменения:

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

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

+0

Будет ли он сканировать .htaccess, если AllowOverride установлен на none? – Paypal

+1

Это не будет, вам нужно будет поместить все свои правила в теги в httpd.conf, если вы отмените отмену. – Mike

3

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

0

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

1

Есть три вопроса здесь, в терминах которых "лучше":

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

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

Смежные вопросы