регулярное выражение для перенаправления не www в www и поддомен в файл - PullRequest
0 голосов
/ 20 марта 2012

Мне нужно сделать следующее ... наткнулся на различные примеры, но мне нужно объединить три условия

редирект 1) перенаправить запросы не www / non поддомен. например:

http://xyzsite.com до http://www.xyzsite.com

2) перенаправление, если указан поддомен. например:

http://user1.xyzsite.com до http://www.xyzsite.com/profile?user1

3) перенаправление на мобильную версию. например:

http://m.xyzsite.com до http://www.xyzsite.com/m

Технические детали: Я использую IIS версии 6 и использую модуль helicontech isapi_rewrite

Ответы [ 3 ]

0 голосов
/ 21 марта 2012

Вот правила ISAPI_Rewrite v3 (надеюсь, это версия, которую вы используете):

RewriteBase /
RewriteCond %{HTTP_HOST} ^xyzsite\.com$
RewriteRule .? http://www.xyzsite.com [NC,R=301,L]

RewriteCond %{HTTP_HOST} ^m\.xyzsite\.com$
RewriteRule .? http://www.xyzsite.com/m [NC,R=301,L]

RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.xyzsite\.com$
RewriteRule .? http://www.xyzsite.com/profile?%1 [NC,R=301,L]
0 голосов
/ 21 марта 2012

1.

  • Совпадение: ^xyzsite.com$
  • Перенаправление: www.xyzsite.com

2

  • Совпадение: ^(?!www.)(.*).xyzsite.com$
  • Перенаправление: www.xyzsite.com/profile?$1

3.

  • Совпадение: ^m.(.*)$
  • Перенаправление: www.$1/m
0 голосов
/ 20 марта 2012

Я потратил некоторое время на это, чтобы, надеюсь, направить вас в правильном направлении. Я придумаю самое простое решение, если вы не указали ограничение явно. Это означает, что я жестко закодировал xyzsite.com в регулярном выражении. Это действительно выдвигает на первый план намного больше решения

1) перенаправить запросы не www / non subdomain. Например: http://xyzsite.com до http://www.xyzsite.com

pattern:
http://(.*?.com)

replacement:
http://www.$1

2) перенаправить, если указан поддомен. Например: http://user1.xyzsite.com до http://www.xyzsite.com/profile?user1

pattern:
(http://)(.*?)\.(.*)

replacement:
$1www.$3/profile?$2

3) перенаправление на мобильную версию. Например: http://m.xyzsite.com до http://www.xyzsite.com/m

pattern:
http://m\.(.*)

replacement:
http://www.$1/m

Надеюсь, это поможет, Бакли

...