СправошнаяПоиск

Часто используемые в htaccesss редиректы

Файл .htaccess может содержать определенные инструкции для сервера. Этот файл может настроить сервер на запрос пароля для каталога, в котором он находится. Файл .htaccess также можно настроить для автоматического перенаправления пользователей на другой индексный файл или сайт, ограничения или разрешения пользователей на основе IP-адресов и отключения списков каталогов. Возможно, вам никогда не понадобится редактировать файл .htaccess, но если вы это сделаете, вы должны убедиться, что файл называется только «.htaccess», с точкой впереди и без расширения файла .txt или .htm.

Общие правила перенаправления 301 Htaccess

Перенаправить одну страницу

 

Redirect 301 /pagename.php www.example.com/pagename.html

 

Перенаправить весь сайт или домен на новый

 

Redirect 301 / www.example.com

 

Перенаправить весь сайт в подпапку

 

Redirect 301 / www.example.com/subfolder/

 

Перенаправить подпапку на другой веб-сайт

 

Redirect 301 /подпапка www.example.com

 

Перенаправить расширение файла, но сохранить имя страницы

Пример: если вы хотите, чтобы расширение .html использовало то же имя файла, но использовало расширение .php.

 

RedirectMatch 301 (.*)\.html$ www.example.com$1.php

 

Перенаправление со старого домена на новый домен

 

RewriteEngine On
RewriteBase /
RewriteRule (.*) www.newdomain.com/$1 [R=301,L]

 

Перенаправление с поддомена без www на поддомен с www

 

RewriteEngine On
RewriteBase /
RewriteCond %{http_host} ^domain.com [nc]
RewriteRule ^(.*)$ www.domain.com/$1 [r=301,nc]

 

Перенаправить домен на адрес www с подкаталогом

 

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ www.domain.com/directory/index.html [R=301,NC]

 

Перенаправление со старого домена на новый домен, который включает полный путь и строку запроса

 

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) www.newdomain.com%{REQUEST_URI} [R=302,NC]

 

Перенаправление со старого домена с подкаталогом на новый домен без подкаталога, но с полным путем и строкой запроса

 

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) www.домен.com/%1 [R=302,NC]

 

URL-адреса перенаправления с параметрами запроса с файлами, расположенными в корневом каталоге

Пример: исходный URL-адрес — www.domain.ru/index.php, а новый URL-адрес — www.domain.ru/path-to-new-location/

 

RewriteEngine On
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^index\.php$ /path-to-new-location/? [Л,П=301]

 

Перенаправить URL-адреса с параметрами запроса и поместить файлы в подкаталог

Пример: исходный URL-адрес —

 

www.домен.ru/sub-dir/index.php

 

, а новая страница —

 

www.домен.ru/path-to-new-location/

 

RewriteEngine On
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [Л,П=301]

 

Перенаправьте сайт на HTTPS с HTTP, чтобы исключить дублирование контента.

 


RewriteEngine On
RewriteCond %{HTTPS} на
RewriteRule (.*) %{HTTP_HOST}%{REQUEST_URI}

 

Перенаправить сайт с HTTP на HTTPS, чтобы исключить дублирование контента.

 

RewriteEngine On
RewriteCond %{HTTPS} на
RewriteRule (.*) %{HTTP_HOST}%{REQUEST_URI}

 

Удалите index.html или index.php и перенаправьте в корень.

 

RewriteEngine On
RewriteCond %{THE_REQUEST} /index.php HTTP [NC]
RewriteRule (.*)index.php$ /$1 [R=301,L]

 

RewriteEngine On
RewriteCond %{THE_REQUEST} /index.html HTTP [NC]
RewriteRule (.*)index.html$ /$1 [R=301,L]

 

Перенаправлять URL-адреса с параметрами запроса в структуру на основе каталогов, сохраняя при этом строку запроса на корневом уровне URL-адреса.

Пример: исходный URL-адрес — www.домен.ru/index.php , а новая страница — www.домен.ru/100/

 

RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]

 

Перепишите URL-адреса с параметром запроса в структуру на основе каталога, сохранив при этом параметры строки запроса в подкаталоге URL-адреса.

Пример: исходный URL-адрес — www.домен.ru/index.php, а новая страница — www.домен.ru/category/fish/

 

RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]

 

Перенаправьте старый веб-сайт на новый домен и сохраните URL-адрес

 

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC]
RewriteRule ^(.*)$ www.example-new.com/$1 [R=301,L]
Если вы не хотите передавать путь к новому домену, измените последнюю строку на:
RewriteRule ^(.*)$ www.example-new.com [R=301,L]

 

Добавляйте завершающую косую черту к URL-адресам без нее

 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ www.example.com/$1/ [R=301,L]

 

Перенаправление с поддомена блога в папку блога

Пример: перенаправление

 

blog.домен.ru

 

на

 

www.домен.ru/blog/

 

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}/ блог
RewriteRule ^(.*) www.somewhere.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]

 

Перенаправить один каталог в другой

 

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)/old-directory/(.*)$ $1/new-directory/$2 [R,L]