Бесплатный инструмент
Генератор 301 редиректов для .htaccess и nginx
Вставьте список «старый адрес — новый адрес», получите готовые правила для Apache (.htaccess), nginx или PHP. Всё считается в браузере, данные никуда не отправляются.
RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L]
RewriteRule ^catalog/old-category/$ /catalog/new-category/ [R=301,L]
RewriteCond %{QUERY_STRING} ^id=5$
RewriteRule ^promo$ /sale? [R=301,L]Готовые правила
HTTP → HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]www → без www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]Убрать слэш в конце
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]index.php / index.html → /
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.(php|html)
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]Как применить правила
- Apache: добавьте правила в начало файла
.htaccessв корне сайта, до правил CMS. Нужен включённыйmod_rewrite. - nginx: вставьте строки внутрь блока
server { }, проверьте конфиг командойnginx -tи перезагрузите:nginx -s reload. - После внедрения проверьте несколько адресов в проверке кода ответа: должен быть один шаг с кодом 301.
Не знаете, какие адреса перенаправлять? Monitor404 соберёт битые URL, на которые реально приходят посетители, подскажет похожие живые страницы и выгрузит правила в этом же формате. Подробнее о кодах — в статье «301 редирект: что это и как настроить».
Частые вопросы
Как сделать 301 редирект в .htaccess?
Для одной страницы: Redirect 301 /old-page https://site.ru/new-page или RewriteRule ^old-page$ /new-page [R=301,L]. Генератор выше создаёт такие правила для списка адресов.
Чем 301 отличается от 308?
Оба постоянные. 308 гарантирует, что браузер повторит запрос тем же методом (например, POST), 301 разрешает сменить POST на GET. Для обычных страниц разницы нет — используйте 301.
Как перенаправить страницу с параметрами (?id=5)?
В Apache — через RewriteCond %{QUERY_STRING}, в nginx — проверкой $request_uri или $arg_id. Генератор делает это автоматически, если в адресе есть «?».
Сколько редиректов можно добавить в .htaccess?
Ограничения нет, но каждое правило проверяется на каждый запрос. При тысячах правил удобнее nginx map или перенаправления на уровне CMS.