Қайта бағыттау (немесе қайта бағыттау) сайт пайдаланушыларын немесе іздеу жүйелерін бір беттен екінші бетке тасымалдау, басқаша айтқанда, БІР URL МЕКЕНЖАЙЫНАН екіншісіне қайта бағыттау қажет болған жағдайда қолданылады.
Apache
Mod_rewrite модулін қосу
Apache құралдарының көмегімен қайта бағыттауды қосу үшін модуль жеткілікті mod_rewrite.so Ол Apache — ге жүктелді.
Ubuntu, Debian ОЖ үшін:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
CentOS, RedHat, AlmaLinux ОЖ ҮШІН /etc/httpd/conf.modules.d/00-base.conf файлында жол бар:
LoadModule rewrite_module modules/mod_rewrite.so
Егер ол жоқ болса, оны файлдың соңына қосу керек. Егер оған түсініктеме берілсе (жолдың басында # бар), онда сіз жолды түсіндірмеуіңіз керек.
Mod_rewrite директиваларын пайдалану үшін .htaccess, Apache конфигурация файлына сәйкес бөлімде жазу керек <Каталог /жол/to / каталог>:
AllowOverride all
Apache конфигурация файлына өзгертулер енгізгеннен кейін, бұл өзгерістер күшіне енуі үшін веб-серверді қайта іске қосу қажет.
Ubuntu, Debian ОЖ үшін:
systemctl restart apache2
CentOS, RedHat, AlmaLinux OS ҮШІН:
systemctl restart httpd
Жылы .htaccess, қайта бағыттау жұмыс істеуі үшін келесі директиваны көрсету керек:
RewriteEngine On
Қайта Бағыттау Ережелері
Бұл директиваларды Қалаған virtualhost Үшін Apache конфигурациясында немесе файлда көрсетуге болады.htaccess файлы.
Қайта бағыттау немесе Қайта Бағыттау Тұрақты
Бұл ережелердің басты кемшілігі-әрбір мекенжай үшін жаңа ереже жазылуы керек. Егер сізге бірнеше қайта бағыттау қажет болса, онда әрбір жаңа қайта бағыттау жаңа жолдан жазылады.
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
немесе
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
Барлық сұраныстарды басқа сайтқа бағыттау үшін келесі құрылысты пайдалануға болады:
Redirect 301 / http://new-domain.ru/
немесе
Redirect permanent / http://new-domain.ru/
RedirectMatch
Бұл қайта бағыттаудың тұрақты өрнекті қолдана алатындығымен ерекшеленеді. Мысалы, веб-сайтты Windows Жүйесінен Linux Жүйесіне көшіру кезінде барлық сілтемелерді *ішінен өзгерту керек.php-ден *.aspx.:
RedirectMatch /(.*)\.aspx$ /$1.php
RewriteRule
Бұл модуль жұмыс істеуі үшін FollowSymLinks опциясы қосылғанына көз жеткізіңіз. Бұл функция Apache конфигурация файлында немесе файлда тіркелуі керек.htaccess төменде көрсетілгендей.
Оны қолданудың ең кең тараған тәсілдерін қарастырайық.
Бір сайттан екіншісіне қайта бағыттау
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.oldsite\.ru [OR]
RewriteCond %{HTTP_HOST} ^oldsite\.ru
RewriteRule (.*) https://newsite.ru [R=301,L]
Www-дан www-сыз қайта бағыттау
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Немесе түсінікті синтаксис:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Сіз кез келгенін пайдалана аласыз.
Www жоқ жерден www-ге қайта бағыттаңыз
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
Балама:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Доменді https-тен http-ге қайта бағыттау
Бұл қайта бағыттау жұмыс істеуі үшін Тек Apache Веб-серверін пайдалану керек. Nginx + Apache бумасын пайдалану кезінде екі жаққа бару қатесі орын алады. Сондықтан қайта бағыттауды Nginx жүйесінде арнайы конфигурациялау қажет болады.
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Доменді http-ден https-ке қайта бағыттау
Бұл қайта бағыттау жұмыс істеуі үшін Тек Apache Веб-серверін пайдалану керек. Nginx + Apache бумасын пайдалану кезінде екі жаққа бару қатесі орын алады. Сондықтан қайта бағыттауды Nginx жүйесінде арнайы конфигурациялау қажет болады.
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]
Nginx
Қайта бағыттауларды конфигурациялау үшін қажет ngx_http_rewrite_module модулі Nginx-пен бірге автоматты түрде орнатылады.
Қайта бағыттау ережелерін бір-бірден қосу ұсынылады, себебі қате немесе циклдік қайта бағыттау орын алуы мүмкін. Сондықтан, конфигурация файлын әр өзгерткеннен кейін оның дұрыстығын пәрмен арқылы тексеру қажет:
nginx -t
301 с қайта бағыттау www.domain.com бойынша domain.com
Nginx үшін конфигурация файлында екі сервер бөлімін жасау керек, біреуі www бар домен үшін, екіншісі www жоқ домен үшін:
Қайта бағыттауға арналған сервер бөлімі:
server {
listen 80;
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
Доменнің негізгі параметрлері орналасқан сервер бөлімі:
server {
listen 80;
server_name domain.com;
.....
}
Nginx конфигурация файлына өзгертулер енгізгеннен кейін, бұл өзгерістер күшіне енуі үшін веб-серверді қайта іске қосу қажет.
nginx -s reload
немесе
systemctl reload nginx
301 с қайта бағыттау domain.com бойынша www.domain.com
Nginx үшін конфигурация файлында екі сервер бөлімін жасау керек, біреуі www бар домен үшін, екіншісі www жоқ домен үшін:
Қайта бағыттауға арналған сервер бөлімі:
server {
listen 80;
server_name domain.ru;
return 301 http://www.$host$request_uri;
}
Доменнің негізгі параметрлері орналасқан сервер бөлімі.
server {
listen 80;
server_name www.domain.com;
.....
}
Nginx конфигурация файлына өзгертулер енгізгеннен кейін, бұл өзгерістер күшіне енуі үшін веб-серверді қайта іске қосу қажет.
nginx -s reload
немесе
systemctl reload nginx
301 https-тен http-ге қайта бағыттау
Nginx үшін конфигурация файлында екі сервер бөлімін жасау керек, біреуі https үшін (порт 443), екіншісі http үшін (порт 80).
Https (порт 443) арқылы ашуға және параметрлерді қайта бағыттауға арналған сервер бөлімі:
server {
listen 443;
server_name domain.ru www.domain.ru;
return 301 http://$host$request_uri;
}
Негізгі домен параметрлері орналасқан http (порт 80) арқылы ашуға арналған сервер бөлімі.
server {
listen 80;
server_name www.domain.com;
.....
}
Nginx конфигурация файлына өзгертулер енгізгеннен кейін, бұл өзгерістер күшіне енуі үшін веб-серверді қайта іске қосу қажет.
nginx -s reload
немесе
systemctl reload nginx
301 http-ден https-ке қайта бағыттау
Nginx үшін конфигурация файлында екі сервер бөлімін жасау керек, біреуі http үшін (порт 80), екіншісі https үшін (порт 443).
Nginx conf файлындағы жаңа домен үшін
Http (порт 80) арқылы ашуға және қайта бағыттауларды конфигурациялауға арналған сервер бөлімі:
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://$host$request_uri;
}
Негізгі домен параметрлері орналасқан https (порт 443) арқылы ашуға арналған сервер бөлімі.
server {
listen IP.server:443;
server_name www.domain.com;
.....
}
Nginx conf файлындағы бар домен үшін
Егер сіз nginx conf файлының бар бөліміне өзгертулер енгізсеңіз, оны осылай жасаңыз:
негізгі домен бөлімінен келесі жолды жойыңыз
listen IP.server:80;
және осы түрдегі жаңа сервер бөлімін жасаңыз:
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://$host$request_uri;
}
Nginx конфигурация файлына өзгертулер енгізгеннен кейін, бұл өзгерістер күшіне енуі үшін оны осылай қайта іске қосу қажет:
nginx -s reload
немесе
systemctl reload nginx
