Как переписать URL-адрес с some-sub-domain.some-domain.com на some-domain.com/some-sub-domain - PullRequest
0 голосов
/ 16 мая 2011

Я хочу переписать свой URL, чтобы я мог добраться до папки, которая рассматривается клиентами как поддомен.Клиент поместит в адресную строку следующее:

abc.def.com

, и при перезаписи URL он будет автоматически переведен в

def.com/abc

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

Ответы [ 3 ]

2 голосов
/ 17 мая 2011

Вы должны использовать %{HTTP_HOST} вместо %{REMOTE_HOST}. Это связано с тем, что %{REMOTE_HOST} является результатом обратного просмотра DNS на %{REMOTE_ADDR}, если HostnameLookups включено.

Так что ваше правило должно быть

RewriteCond %{HTTP_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC]
RewriteRule ^(.*) /%1/$1 [L]
1 голос
/ 17 мая 2011

В RewriteRule очень мало изменений, чтобы хорошо работать

 RewriteCond %{HTTP_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC]
 RewriteRule ^(.*)$ /%1/$1 [L]

Вы должны использовать $ в RewriteRule.Надеюсь, что это полезно для вас.

0 голосов
/ 16 мая 2011

Если вы уже знаете поддомен, вы можете:

RewriteCond %{REMOTE_HOST} ^(?:www\.)?subdomain\.your_domain\.com [NC]
RewriteRule ^(.*) /subdomain/$1 [L]

И если вы хотите поддерживать ЛЮБОЙ возможный поддомен, используйте:

RewriteCond %{REMOTE_HOST} ^(?:www\.)?([^\.]+)\.your_domain\.com [NC]
RewriteRule ^(.*) /%1/$1 [L]
...