Перенаправлення 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, для набрання чинності цими змінами, потрібно його перезапустити так: