Приведенные ниже примеры могут быть добавлены в ваш файл .htaccess именно так, как показано. Только не забудьте изменить путь к файлу, чтобы файл .htaccess знал, где он находится. Также, если вы видите домен example.com, измените его на свое доменное имя.
Следующая строка перенаправляет все URL-адреса вашего сайта на новый сайт.
Redirect 301 / https://example.com/
Использование 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 /path/to/old/file/old.html https://www.example.com/new/file/new.html
Первый путь
Первый путь к старому файлу должен быть локальным путем, а не полным путем. Так, если файл .htaccess
находится в каталоге /example.com
, не нужно включать /home/username/example.com
в локальный путь. Первая /
представляет каталог example.com
. Если старый файл находился в этом каталоге, то после /
следует имя старого файла.
Второй путь
Второй путь к новому файлу может быть локальным путем, но может быть и полным URL-адресом для ссылки на страницу на другом или том же сервере.
RedirectMatch 301 ^/blog/about /blog/about.html
Redirect /index.html /new/
Redirect /index.html /default.html
Redirect /private/ https://www.example.com/private/
Убедитесь, что другой сайт является вашим собственным. Никогда не делайте горячих ссылок на файлы с других сайтов.
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]
Если посетитель пытается зайти на несуществующую страницу, ему выдается ошибка 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]
RewriteEngine On RewriteCond %{HTTP_HOST} ^example.com RewriteRule (.*) https://www.example.com/$1 [R=301,L]
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule (.*) https://example.com/$1 [R=301,L]
Этот пример переписывает 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]
Ниже приведены пояснения к вышеуказанным правилам:
Дополнительную информацию и примеры по mod-rewrite можно найти по следующей ссылке:
Следующая команда перенаправляет все ссылки на несуществующие файлы или папки на 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://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;"
Посетитель может ввести прямой HTTP URL на вашем сайте WordPress, даже если SSL-сертификат активен. Чтобы заставить любой HTTP-запрос перенаправляться на HTTPS, вы можете добавить код в файл WordPress .htaccess. Ниже приведены два варианта кода, которые вы можете использовать. Первый должен работать, как показано, но если нет, попробуйте второй вариант.
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
В этом примере обязательно замените 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