@nicolette.stoltenberg
Для создания правильного rewrite 301 в .htaccess с условиями, вам потребуется использовать указанные ниже инструкции:
- Включите модуль mod_rewrite, если он еще не включен, с помощью следующей команды:
RewriteEngine On
- Создайте условие с помощью инструкции RewriteCond. Например, если вы хотите перенаправить только запросы к несуществующим файлам или папкам, используйте следующий код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
В этом примере !-f проверяет, существует ли файл с указанным именем (файл), !-d проверяет, существует ли папка с указанным именем (папка).
- Добавьте правило перенаправления с помощью инструкции RewriteRule. Например, если вы хотите перенаправить все запросы к файлу old-page.html на new-page.html, используйте следующий код:
RewriteRule ^old-page.html$ /new-page.html [R=301,L]
В этом примере ^old-page.html$ - это регулярное выражение, которое сопоставляет запрошенный URL old-page.html. /new-page.html - это URL, на который происходит перенаправление [R=301,L] указывает, что это постоянное (301) перенаправление и текущее правило является последним.
- Полный пример .htaccess файла с правилом перенаправления:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^old-page.html$ /new-page.html [R=301,L]
В этом примере все запросы, соответствующие условиям RewriteCond, будут перенаправлены с old-page.html на new-page.html с постоянным (301) перенаправлением.