Доки

Директивы htaccess

Собираю на этой странице основные директивы .htaccess, которые пригождались во время работы над веб-проектами.

Перенаправляем весь сайт с помощью htaccess, но исключаем конкретные URL

С помощью директивы RewriteRule в файле .htaccess можно перенаправить весь сайт, но исключить определенные каталоги и URL с помощью директивы RewriteCond. Ниже приведу пример того, как это можно сделать.

Во-первых, вам нужно включить mod_rewrite на вашем сервере. Это можно сделать, добавив следующую строку в файл .htaccess:

RewriteEngine On

Далее вы можете использовать директиву RewriteCond, чтобы исключить из перенаправления определенные каталоги или URL. Например, чтобы исключить каталог под названием «exclude» и файл под названием «exclude.html«:

RewriteCond %{REQUEST_URI} !^/exclude/ 
RewriteCond %{REQUEST_URI} !^/exclude.html$

Затем с помощью директивы RewriteRule перенаправьте весь сайт на новый URL. Например, чтобы перенаправить сайт на «https://www.newsite.com»:

RewriteRule ^(.*)$ https://www.newsite.com/$1 [L,R=301]

Наконец, объедините весь приведенный выше код в файле .htaccess следующим образом:

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/exclude/ 
RewriteCond %{REQUEST_URI} !^/exclude.html$ 
RewriteRule ^(.*)$ https://www.newsite.com/$1 [L,R=301]

Важно отметить, что приведенный выше код перенаправит весь сайт на новый URL, за исключением директории «exclude» и файла "exclude.html". Вы можете добавить столько RewriteCond, сколько захотите, чтобы исключить больше директорий или файлов. Также не забудьте протестировать изменения, прежде чем применять их на рабочем сайте.

Сергей Ермилов
Сергей Ермилов
Дизайнер, верстальщик, фронтенд-разработчик, PHP и WordPress энтузиаст, главный редактор сайта
Опубликовано 10 сентября 2025 в 02:22
Теги: PHP