В данном посте будут рассмотрены примеры синтаксиса .htaccess которые мне реально помогали в той или иной ситуации. Написанное не обязательно истина в последней инстанции, наоборот возможно вы найдете лучший вариант. Поехали…
.htaccess (от. англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
Листинг файлов при помощи htaccess
Часто при создании нового хостинг аккакунта не видно закачанных файлов. Т.е залил файл а его не видно, а обращатся в командной строке браузера очень не удобно. Вот директива htaccess для отображения листинга файлов.
Options Indexes
Если требуется наоборот закрыть листинг файлов то используем:
Options – Indexes
Страница по умолчанию
Иногда бывает что при наличии файла index.html все равно он не загружается или ошибка 403 («Forbidden»), в зависимости от настроек сервера. Используем этот пример:
DirectoryIndex
Вместо index.html можно использовать другой файл или поочередность загрузки, вот пример:
DirectoryIndex index.html index.htm index.php
Получается следующее: при обращении к каталогу будет возвращён файл index.html, если его нема, то index.htm, ну а если и он отсутствует, то index.php. То есть мы не просто определили те файлы, которые должны открываться по умолчанию, но и их приоритет.
Редирект
Перенаправление с www на без www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.сайт\.com$ [NC]
RewriteRule ^(.*)$ http://сайт.com/$1 [R=301,L]
универсальный редирект с вариантом без www, без привязки к адресу сайта
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www\.)(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
в случае, когда сайт разрабатывается локально позволяет использовать один и тот же файл не думая о том что адрес мог поменяться
редирект 301
Если Ваш сайт по какой-то причине переехал (сменил) на новый адрес, то как раз 301 редирект подскажет поисковому роботу где Вас искать, причем Ваш сайт не потеряет вес и другие показатели при переезде.
Чтобы выполнить сие действие надо в файле .htaccess прописать следующее:
Redirect 301 / http://новый сайт.kz
Где «/» означает, что все начиная с «головы» сайта включая все подкаталоги будет переадресовано на новый адрес.
Бывает такие случаи, что необходимо перенести только одну страницу при этом сохранить ее вес. Например при смене CMS. Была у меня такая вот история, сменился тип ЧПУ. Для этого в файле .htaccess прописываем:
Redirect 301 /путь/пост.html http://новый сайт.kz/пост.html
Редирект всех внутренних страниц на главную:
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule !(^$|.*\.(css|jpg|gif)) / [R=301,L]
Вот такой получился небольшой список примеров .htaccess
Присылайте свои примеры, будем изучать!
P.S. не обращайте внимание на картинки, это так…забава 🙂