Что такое .htaccess
.htaccess - это файл конфигурации веб-сервера Apache, который позволяет настраивать множество параметров сервера, включая редиректы и защиту от неавторизованного доступа. Он располагается в корневой директории сайта и может содержать множество правил.
Редирект с исключением папки
Для того чтобы настроить редирект с исключением папки, нужно использовать условие RewriteCond. Это условие позволяет применить правило редиректа только к определенным страницам или папкам.
Например, предположим, что у нас есть сайт, на котором мы хотим настроить редирект со страницы example.com/old-page на страницу example.com/new-page, но при этом исключить папку /images/ и все ее содержимое. Для этого нужно использовать следующий код:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/images/
RewriteRule ^old-page$ /new-page [R=301,L]
Этот код означает, что если запрашиваемый URL не начинается с /images/, то будет применяться правило редиректа с /old-page на /new-page. При этом, если пользователь попытается зайти на страницу внутри папки /images/, он останется на этой странице без редиректа.
Пример: Редирект со всех страниц на одну
Иногда бывает нужно перенаправить пользователей, запрашивающих любую страницу сайта, на одну определенную страницу. Для этого нужно использовать следующий код:
RewriteEngine On
RewriteRule ^(.*)$ /new-page [R=301,L]
Этот код перенаправит всех пользователей, запрашивающих любую страницу сайта, на страницу /new-page.
Пример: Редирект со старого домена на новый
Если вы переехали на новый домен и хотите перенаправить пользователей со старого домена на новый, можно использовать следующий код:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old-domain.com$
RewriteRule (.*)$ http://new-domain.com/$1 [R=301,L]
Этот код перенаправит всех пользователей, переходящих на сайт с домена old-domain.com или www.old-domain.com, на сайт с новым доменом new-domain.com.
Заключение
.htaccess - это мощный инструмент для настройки сервера Apache и для настройки редиректов на сайте. Правильно настроенные редиректы помогут улучшить SEO-показатели сайта и улучшить пользовательский опыт. Не забывайте описывать условия для правил редиректа, чтобы избежать нежелательных перенаправлений.