htaccess перенаправление поддомена с последним параметром URL

Я хочу написать файл .htaccess для перенаправления моих субдоменов и последней переменной URL в новое место. Вот что я хочу сделать:

http(s)://abc.example.com/books

Я хочу, чтобы мой внутренний URL-адрес выглядел так:

http://example.com/?name=abc&type=books

У меня уже работает перенаправление субдомена, но я не могу сделать субдомен с переменной в последней части URL.

Как я могу это сделать?


person Community    schedule 15.07.2009    source источник
comment
Обычно, если ваша проблема была решена с помощью одного из приведенных ниже ответов, ставьте галочку рядом с этим ответом. Это поможет другим узнать, что ваша проблема решена, и вы говорите спасибо человеку, который ответил.   -  person random    schedule 08.08.2009


Ответы (2)


Это должно делать то, что вы хотите:

RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^(.*)% http://example.com/?name=%1&type=$1 [R,L]

«%1» означает использование первой группы захвата из RewriteCond выше.

person Greg    schedule 15.07.2009
comment
Спасибо, Грег, за ваш комментарий, но не могли бы вы добавить еще и правило для URL, например, abc.example.com/books и мне нужны обе переменные abc и books. и я хочу перенаправить его на profile.php - person ; 15.07.2009
comment
Это сделает азбуку и книги - person Greg; 16.07.2009
comment
Привет, Грег, ты великий человек. Я наткнулся на эту проблему так много времени. так решил. Спасибо большое - person ; 16.07.2009
comment
В регулярном выражении опечатка..% вместо $ :) - person drAlberT; 10.12.2013

RewriteCond %{HTTP_HOST} ^(.+)\.example\.com
RewriteRule ^([^/]*)$ http://example.com/?name=%1&type=$1 [R,L]

"%1" означает использование первой группы захвата из RewriteCond, а $1 — это первая группа захвата в самом правиле.

В вашем примере %1 будет «abc», а $1 будет «книгой».

[^/]* означает "соответствовать каждому символу, не являющемуся косой чертой, 0 или более раз"

person drAlberT    schedule 16.07.2009
comment
Спасибо за ваше объяснение, моя проблема решена, и я получаю обе переменные Большое спасибо. - person ; 16.07.2009