Грозный .htaccess

Создатели веб-сервера Apache подумали о нас, простых пользователях, и сделали возможность частично конфигурировать работу сервера при помощи специального файла .htaccess. У многих возникает в голове мысль: а почему точка вначале названия? В общем, неспроста, разработчики хотели указать, таким образом, что файл может работать не только в главном каталоге, но и в подкаталогах. Преимуществом данного файла, кроме всех прочих, является то, что внесённые изменения будут вступать в силу немедленно. Рассмотрим часть широко используемых директив:

  • RewriteBase – устанавливает определённый, базовый URL для преобразований в контексте каталога
  • RewriteCond – директива определяет условие, при котором происходит преобразование, что-то наподобие if, в популярных языках программирования
  • RewriteEngine – отвечает за включения или отключение работы механизма преобразования, соответственно, имеет только два состояния on и off
  • RewriteOptions – устанавливает специальные опции для механизма преобразования
  • RewriteRule – определяет правила для механизма преобразования

Все вышеперечисленные директивы входят в модуль mod_rewrite имеющийся в составе Apache.

Наиболее часто файл .htaccess используется для редиректов, то есть перенаправлений. Редиректы бывают разными, например: 301 означает, что документ перемещён на постоянной основе, 302 – документ перемещён временно, 303 – смотрите другое, 410 – документ удалён.

Если у Вас возникла необходимость склеить сайт с «www» и без, то прописываем в .htaccess следующий код, где вместо site.ru пишем название вашего ресурса:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ^site.ru$[NC]

RewriteCond %{REQUEST_URI} !^/robots.txt

RewriteRule ^(.*)$ http://www.site.ru/$1[R=301,L]

Следует сказать об основных операторах регулярных выражений, которые используются в написании кода в .htaccess: ^ – ограничение слева, $ – ограничение справа, * – 0 и более символов. Если Вас интересуют другие регулярные выражения или есть иные вопросы, задавайте, будем разбираться.







Если вы хотите разместить свою статью или новость - присылайте ее по адресу .