WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

htaccess Редиректы (примеры)

Приведенные ниже примеры могут быть добавлены в ваш файл .htaccess именно так, как показано. Только не забудьте изменить путь к файлу, чтобы файл .htaccess знал, где он находится. Также, если вы видите домен example.com, измените его на свое доменное имя.

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.
Оглавление:

Перенаправление всех URL-адресов

Следующая строка перенаправляет все URL-адреса вашего сайта на новый сайт.

Redirect 301 / https://example.com/

Перенаправление одного URL-адреса

Использование Redirect в файле .htaccess позволяет перенаправлять пользователей со старой страницы на новую без необходимости сохранения старой страницы. Например, если вы используете index.html в качестве индексного файла, а затем позже переименуете index.html в home.html, вы можете настроить перенаправление для отправки пользователей с index.html на home.html. Например:

Перенаправление на локальный файл сайта

Redirect /path/to/old/file/old.html /path/to/new/file/new.html

Redirect to an external site file

Redirect /path/to/old/file/old.html https://www.example.com/new/file/new.html

Первый путь

Первый путь к старому файлу должен быть локальным путем, а не полным путем. Так, если файл .htaccess находится в каталоге /example.com, не нужно включать /home/username/example.com в локальный путь. Первая / представляет каталог example.com. Если старый файл находился в этом каталоге, то после / следует имя старого файла.

Второй путь

Второй путь к новому файлу может быть локальным путем, но может быть и полным URL-адресом для ссылки на страницу на другом или том же сервере.

меню

Примеры перенаправлений

Перенаправление из каталога в HTML-файл

RedirectMatch 301 ^/blog/about /blog/about.html

Перенаправление из файла index.html в другой каталог

Redirect /index.html /new/

Перенаправление с index.html на default.html

Redirect /index.html /default.html

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

Redirect /private/ https://www.example.com/private/

Загрузка файла .gif с другого сайта

Убедитесь, что другой сайт является вашим собственным. Никогда не делайте горячих ссылок на файлы с других сайтов.

Redirect /img/logo.gif https://www.example.com/images/logo.gif

Использование регулярных выражений

Если вы хотите использовать регулярное выражение для перенаправления чего-либо, используйте директиву RedirectMatch:

RedirectMatch "^/oldfile\.html/?$" "https://example.com/newfile.php"

Перенаправление сообщений об ошибках

Вы также можете перенаправлять ошибки 404. Вместо того чтобы выводить страницу 404, вы перенаправляете на домашнюю страницу сайта.

ErrorDocument 404 https://example.com/

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

Этот пример перенаправляет файлы из старой директории /blog/archives в новую директорию /archives. Файл должен существовать в новой директории.

RewriteRule ^blog/archives/(.*)$ /newarchives/$1 [R=301,NC,L]

Перенаправление несуществующих страниц на index.php

Если посетитель пытается зайти на несуществующую страницу, ему выдается ошибка 404. Вместо этого вы можете перенаправить любой запрос на несуществующую страницу в файл index.php (или любой другой файл index), добавив следующий код в .htaccess:

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Если индексная страница не index.php, измените последнюю строку на ваш индексный файл.

Автоматическая загрузка подкаталога

Этот пример перенаправляет URL-адрес домена ROOT на любой подкаталог. В данном примере автоматически загружается example.com/subdir1:

RewriteEngine on
RewriteRule ^$ /subdir1/ [L]

Принудительное включение www в URL

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

Удаление www в URL

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule (.*) https://example.com/$1 [R=301,L]

Переписывание URL-адреса

Этот пример переписывает URL в другой URL. В результате example.com/1.html переписывается в example.com/abc.php?id=1.

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]+).html /abc.php?id=$1 [QSA,L]

Ниже приведены пояснения к вышеуказанным правилам:

([0-9]+)
Ищет любые цифры повторяющуюся 1 или более раз.
([a-z-]*)

Ищет любые строчные буквы и знак -, 0 или более раз. Если нужно, чтобы поддерживались и прописные буквы, используйте ([a-zA-Z-]*). Например:

RewriteRule ^place/([a-zA-Z-]*).html /place/abc.php?id=$1 [QSA,L]
[QSA,L]
Делает сценарий последним выполненным правилом в htaccess. Т.е. если это правило сработало, то немедленно происходит редирект и никакой код ниже не выполняется.

Дополнительную информацию и примеры по mod-rewrite можно найти по следующей ссылке:

меню

Переписывание несуществующих ссылок на index.php

Следующая команда перенаправляет все ссылки на несуществующие файлы или папки на index.php. Однако, если файл или каталог существует, он загружается нормально:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Перенаправление с HTTP на HTTPS для вашего сайта

Следующий код заставляет любой http-запрос быть переписанным с использованием https. Например, следующий код заставляет запрос к http://example.com загружать https://example.com. Он также заставляет напрямую связанные ресурсы (изображения, css и т.д.) использовать https:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

Если это не работает, сначала проверьте окончания строк. Копирование/вставка из веб-браузера в текстовый редактор может работать неправильно, поэтому после вставки в текстовый редактор необходимо удалить каждый перенос строки и добавить его обратно.

меню

Принудительное использование HTTPS в WordPress

Никогда не добавляйте ваши правила внутри правил WordPress, внутри:

# BEGIN WordPress
# END WordPress

Потому что эти правила авто-генерируются и ваш код в какой-то момент исчезнет!

Посетитель может ввести прямой HTTP URL на вашем сайте WordPress, даже если SSL-сертификат активен. Чтобы заставить любой HTTP-запрос перенаправляться на HTTPS, вы можете добавить код в файл WordPress .htaccess. Ниже приведены два варианта кода, которые вы можете использовать. Первый должен работать, как показано, но если нет, попробуйте второй вариант.

меню

Вариант #1

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Вариант #2

В этом примере обязательно замените example.com на ваше настоящее доменное имя.

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

--

Источник информации

Комментариев нет
    Войти