Перенаправление субдомена в домен с сохранением пути и строки запроса - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть поддомен, и я хочу перенаправить на основной домен (используя .htaccess) следующим образом:

  1. https://abc.example.com Я хочу перенаправить его на https://www.example.com
  2. https://abc.example.com/path/page-name до https://www.example.com/path/page-name
  3. https://abc.example.com/path/page-name?test=12&test1=12 до https://www.example.com/path/page-name?test=12&test1=12

Пожалуйста, предложите, как я могу это сделать.

Я уже попробовалниже решение, но оно не работает.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$   [NC]
RewriteRule ^ http://www.example.com/suberror  [L,R]

Я использую Laravel.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Допущения:

  • У вас есть 1 поддомен (как указано в вашем примере)
  • Субдомен и основной домен указывают на одну и ту же область в файловой системе (они имеют общий корень).

Попробуйте что-то вроде следующего в верхней части вашего .htaccess файла:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^abc\.example\.com [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI}  [R,L]

URL-путь из запроса содержится в REQUEST_URIпеременная сервера.Строка запроса из запроса передается в подстановку (цель) без какой-либо дополнительной работы.

0 голосов
/ 28 февраля 2019

В этой строке:

RewriteRule ^ http://www.example.com/suberror  [L,R]

Нет pattern означает, что регулярное выражение проверено по запрошенному URI.

Измените его на:

RewriteRule ^(.*)$ http://www.example.com/$1  [L,R]

Эта часть ^(.*)$ равна pattern, и она будет представлена ​​в substitution этим $1

Если все в порядке, измените [L,R] на [L,R=301] на постоянное перенаправление, потому что Rсамо по себе означает R=302, что временно.

...