SharePoint Alfresco PHP MySQL
О сайте Контакты
суббота, 17 ноября 2012 г.

Различные параметры htaccess для Windows и Unix в одном файле

featherЕсли вы занимаетесь разработкой сайтов на Windows, а размещаете их на Unix, то может возникнуть ситуация, когда придется использовать различные параметры .htaccess для разных систем. Например, пути для тестовой и боевой машин могут существенно различаться (прямой и обратный слеш, буква диска в Windows и т.д.)

Аналогично, разработчик может захотеть использовать некоторые параметры .htaccess на тестовой машине и запретить их выполнение на боевой (или наоборот). Например, может быть так, что на боевой машине нужно делать ограничение доступа к определенному разделу, а на тестовой такое ограничение не нужно совсем.

На помощь приходит директива IfModule. Очевидно, что на Windows и на Unix Apache может использовать различные модули. Нужно найти такой модуль, который используется в Windows, но не используется в Unix. Такой модуль есть – это mod_win32.

Таким образом, нужно использовать следующие настройки в .htaccess:

<IfModule !mod_win32.c>
  AuthType Basic
  AuthName Statistics
  ... прочие всякие настройки для запуска на Unix
</IfModule>

Обратите внимание на .с, если написать без этого, работать не будет.

Приведенный код проверяет активность модуля mod_win32, и если его нет (а это означает как раз то, что скрипт запускается не под Windows), идет выполнение настроек внутри IfModule.

Данная статья пригодится тем, кто имеет разные настройки .htaccess на боевых и локальных машинах, и постоянно путается при заливке файлов. Очень легко залить «не тот» файл и поиметь непредсказуемые результаты. Будьте внимательнее, а еще лучше – отдавайте как можно больше ручных действий машине.

Sergey Lysenko, суббота, 17 ноября 2012 г.

Комментарии: