Перенаправлення Apache та Nginx

Зміст

Підключення модуля mod_rewrite

Для включення перенаправлення засобами Apache достатньо, щоб модуль mod_rewrite.so був завантажений в Apache.

Для того щоб директиви mod_rewrite можна було використовувати в .htaccess, треба в конфігураційному файлі Apache, у відповідному розділі " " прописати:

Після внесення змін до конфігураційного файлу Apache, для набрання чинності цими змінами, потрібно перезапустити веб-сервер:

У .htaccess для роботи перенаправлення слід зазначити таку директиву:

Правила Redirect

Ці директиви можна прописувати як у конфізі Apache для потрібного virtualhost, так і у файлі .htaccess.

Redirect або RedirectPermanent

Якщо потрібно зробити кілька редиректів, то кожен новий редирект потрібно написати з нового рядка.

Для перенаправлення всіх запитів на інший сайт ви можете використовувати таку конструкцію:

RedirectMatch

Цей редирект відрізняється тим, що можна використовувати регулярне вираз. Наприклад, при перенесенні сайту з Windows на Linux, необхідно змінити всі посилання з *.php на *.aspx:

RewriteRule

Для роботи цього модуля переконайтеся в тому, що увімкнена опціяFollowSymLinks, цю функцію потрібно прописати в конфігураційному файлі Apache або у файлі.htaccessяк зазначено нижче.

Розглянемо найпоширеніші варіанти її використання.

Редирект з одного сайту на інший

Редирект з www на без www

Або більш зрозумілий синтаксис

Ви можете використовувати будь-хто.

Редирект з без www на www

Перенаправлення домену з https на http

Перенаправлення домену з http на https

Модуль ngx_http_rewrite_module, необхідний для налаштування перенаправлень, вінвстановлюється автоматично разом із Nginx.

Редирект 301 з www.domain.com на domain.com

Для Nginx вам потрібно створити дві секціїserverу конфігураційний файл, одна для домену з www, друга для домену без www:

Секціяserverдля редиректу:

Секціяserver, де знаходяться основні налаштування домену:

Після внесення змін до конфігураційного файлу Nginx, для набрання чинності цими змінами, потрібно перезапустити веб-сервер.

Редирект 301 з domain.com на www.domain.com

Для Nginx потрібно створити дві секції server в конфігураційний файл, одна для домену без www, друга для домену з www.

Секціяserverдля редиректу:

Секціяserver, де знаходяться основні налаштування домену.

Після внесення змін до конфігураційного файлу Nginx, для набрання чинності цими змінами, потрібно перезапустити веб-сервер.

Редирект 301 з https на http

Для Nginx потрібно створити дві секціїserverв конфігураційний файл, одна для https(443 порт), друга для http(80 порт).

Секціяserverдля відкриття по https(443 порт) та налаштування редиректу:

Секціяserver, для відкриття по http(80 порт), де знаходяться основні налаштування домену.

Після внесення змін до конфігураційного файлу Nginx, для набрання чинності цими змінами, потрібно перезапустити веб-сервер.

Редирект 301 з http на https

Для Nginx потрібно створити дві секціїserverв конфігураційний файл, одна для http(80 порт), друга для https(443 порт).

Для нового домену в конф. файл nginx

Секціяserver, для відкриття по http(80 порт) та налаштування перенаправлення:

Секціяserver, для відкриття https(443 порт), де знаходяться основніналаштування домену.

Для існуючого домену в конф. файл nginx

Якщо ви вносите зміни до існуючої секції конф. файлу nginx робіть це так: З основної секції домену видаліть рядок виду

І створіть нову секцію server такого виду:

Після внесення змін до конфігураційного файлу Nginx, для набрання чинності цими змінами, потрібно його перезапустити так: