С помощью директивы 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
, сколько захотите, чтобы исключить больше директорий или файлов. Также не забудьте протестировать изменения, прежде чем применять их на рабочем сайте.