Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess?

Что нужно изменить в приведенных ниже примерах?

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


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

В следующих двух примерах все URL-адреса вашего текущего веб-сайта перенаправляются на второй веб-сайт. Это полезно после переноса вашего сайта на новое доменное имя.

Вариант №1

Redirect 301 / https://example.com/

Вариант №2

В этом примере ваш старый сайт с именем example.com будет перенаправлять с сохранением всех URL-адресов на новый сайт с именем dreamhostexample.com.


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

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

Использование перенаправления в файле .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

Первый путь

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

Второй путь

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


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

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

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

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

Redirect /index.html /new/

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

Redirect /index.html /default.html

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

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]

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

Это перенаправляет файлы из старого каталога (/blog/archives) в домашний каталог.

  • Если вы добавляете определенный файл (example.com/blog/archives/test.html ) в конце концов, он должен существовать в домашнем каталоге для загрузки.
  • Если посещается только подкаталог, загружается домашний каталог. Если вы добавили индексный файл (например, index.html ), он загрузится.
RewriteRule ^blog/archives/(.*)$ /$1 [R=301,NC,L]

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

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

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

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


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

В этом примере URL-адрес КОРНЕВОГО домена перенаправляется в любой подкаталог. В этом примере он автоматически загружается 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] добавляет это к строке вашего внутреннего скриптового запроса и делает его последним выполненным правилом перезаписи.

После использования этого метода вы можете получить веб-страницу с любым типом адреса. Это удобно для модернизации веб-сайта, который не был разработан с учетом mod_rewrite. Это хорошо, потому что не уничтожает никаких закладок, сохраненных на компьютерах пользователей.

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

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

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

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

Источник: help.dreamhost.com

Дайджест новых статей по интернет-маркетингу на ваш email

Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess? | | 2022-08-30 06:59:36 | | Статьи Web-мастеру | | Ознакомьтесь со следующей статьей для получения инструкций о том, как создать файл .htaccess на вашем веб-сервере: | как сделать редирект, как сделать постоянный редирект, перенаправление url адресов в htaccess, перезапись url адреса htaccess, mod-rewrite htaccess |
 
Поделиться статьей: