интернетмагазинот 19 990 руб.
LandingPageот 14 990 руб.

.htaccess – настройка и управление

Файл .htaccess – настройка перенаправлений и управление конфигурацией веб-сервера

.htaccess – настройка и управление

Главная » .htaccess » .htaccess – настройка и управление

1.Файл .htaccess

.htaccess — конфигурационный файл веб-сервера, позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.

Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта — ~/ваш_домен/docs.

Будьте, пожалуйста, внимательны при редактировании файла .htaccess!

2. Примеры использования файла .htaccess

2.1 Перенаправление доменов c синонима сайта на основной домен с кодом 301

Перенаправить запросы на domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]

Перенаправить запросы на www.domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.ru$ [NC]
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]

Данные правила рекомендуется размещать в самом начале файла .htaccess.

2.2 Постоянное перенаправление с кодом 301

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

Redirect 301 /page.html http://www.domain.ru/new_page.html

где:
page.html — адрес старой страницы относительно корня сайта;
www.domain.ru — имя сайта;
new_page.html — адрес страницы, на которую нужно выполнить перенаправление.

Обращаем ваше внимание, что подобное правило не сработает для перенаправления с адресов, содержащих Query String (символы после ?). Для запросов, содержащих QUERY_STRING, можно использовать сочетание RewriteCond и RewriteRule.

Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} ^test=123$ [NC]
RewriteRule ^period/$ http://domain.ru/ [L,R=301]

2.3 Переопределение страниц ошибок

При помощи файла .htaccess вы можете установить свои страницы ошибок:

#401  Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html 
#403  Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html 
#404  Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html 
#500  Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html

Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге ~/ваш_домен/docs/errors.

Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:

А) в файле ~/ваш_домен/docs/robots.txt прописать

User-agent: *
Disallow: /errors

Б) создать файл ~/ваш_домен/docs/errors/.htaccess, в котором прописать

Options -Indexes

2.4 Постраничное перенаправление запросов на другой домен c кодом 301

Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:

Redirect 301 / http://www.newdomain.ru/

либо

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]

2.5 Ограничение доступа к сайту по IP

Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3

Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3

Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:

Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3

Запретить доступ к сайту для всех:

Deny from all

2.6 Переопределение главной страницы сайта (индексного файла каталога)

Сделать главной страницей файл menu.html:

DirectoryIndex menu.html

2.7 Включение обработки PHP в .html-файлах

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

2.8 Запрет выдачи листинга каталога

В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:

Options -Indexes

2.9 Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py

В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:

AddHandler cgi-script .cgi .pl .py
Options +ExecCGI

Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH.
Также в разделе «Веб-сервер» — «Управление модулями» должен быть включен модуль CGI.

2.10 Блокировка переходов со сторонних ресурсов

Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:

RewriteEngine on
RewriteCond %{HTTP_REFERER} baddomain\.ru [NC]
RewriteRule .* - [F]

Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы

RewriteEngine on
RewriteCond %{HTTP_REFERER} baddomain\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} baddomain2\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} baddomain3\.ru [NC]
RewriteRule .* - [F]

2.11 Включение передачи заголовка Last-Modified для файлов .htm .html

По умолчанию на хостинге файлы .html .htm обрабатываются как SSI, поэтому для них не передается заголовок Last-Modified. Для включения в файл .htaccess необходимо добавить строку:

RemoveHandler .html. .htm

При этом файлы .html .htm уже не будут обрабатываться как SSI.

2.12 Особенности использования кириллических доменов (.РФ, .МОСКВА и др.)

В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

Например, для перенаправления domain.ru на caйт.рф нужно воспользоваться следующим правилом:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai /$1 [R=301,L]

Обращаем ваше внимание, что в этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

3. Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в файле ~/ваш_домен/logs/error_log.

Если указанные вами в файле .htaccess правила не выполняются, необходимо убедиться, что обработка файла .htaccess включена в настройках вашего сайта в разделе «Веб-сервер» — «Сайты» панели управления хостингом.

4. Дополнительная документация и примеры

С подробной документацией вы можете ознакомиться на сайте разработчика веб-сервера Apache:

http://httpd.apache.org/docs/1.3/misc/rewriteguide.html
http://httpd.apache.org/docs/1.3/mod/mod_alias.html#redirect

 
Запись опубликована в 9:22 пп автором в рубрике .htaccess, OpenCart, WordPress, Интернет-магазин, Лендинг пейдж с метками .

комментарииВаши замечания, предложения и вопросы оставляйте в комментариях или присылайте на почту web36@bk.ru, я буду рад узнать ваше мнение!


LPBuilder.pro | Бесплатный онлайн конструктор Landing PageНовый проект - Бесплатный онлайн конструктор с помощью которого можно создавать небольшие веб-сайты, лендинги, онлайн-резюме, портфолио, промо сайты... Испoльзуйте блoки в сoтнях кoмбинаций, прoстo дoбавляя oдин за другим, в интуитивнo пoнятнoм интерфейсе. Вы смoжете сoздать сайт свoими руками, воплощайте свои идеи!
Follow @elazukin