2012-02-25 7 views
0

Я хочу написать правила в .htaccess для перенаправленияSubdomain Перенаправление

http://www.dir.domain.com 
http://dir.domain.com 
http://www.domain.com/dir 

они должны перенаправить

http://domain.com/dir 

Заранее спасибо ...

+0

У вас есть переадресация '* .domain.com' на ваш DOCROOT для' domain.com'? Какая у вас услуга? VPS или общий сервис, если последним является cPanel или webadmin. То, что вы просите, выполнимо, но ответ зависит от того, что вы нам рассказываете. – TerryE

+0

У меня есть домен и субдомен в общей службе. Здесь я говорю о моем субдомене. – HDTV

ответ

0

Хитрость здесь заключается в использовании .htaccess файл в вашем DOCROOT

RewriteEngine on 
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?dir\.domain\.com$ 
RewriteRule ^.*    http://domain.com/dir/$0  [R=301,L] 

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
RewriteRule ^dir/.*   http://domain.com/$0   [R=301,L] 

Обратите внимание, что это делает 301 переадресацию - сервер указывает браузеру, что это постоянная переадресация, и браузер кэширует это перенаправление.

Вы также можете сделать внутреннюю переадресацию, когда это сопоставление выполняется тихо на сервере, путем настройки флагов.

Это предполагает, что ваша общая служба использует Apache, если его использование IIS, то вам нужно сделать что-то подобное с web.config

+0

Это не перенаправление ... – HDTV

+0

> RewriteCond% {HTTP_HOST}^www.dir.domain.com [NC] > RewriteRule^(. *) $ Http://domain.com/dir/$1 [L, R = 301] > RewriteCond% {HTTP_HOST}^dir.domain.com [NC] > RewriteRule^(. *) $ Http://domain.com/dir/$1 [L, R = 301]> RewriteCond% { HTTP_HOST}^dir.domain.com [NC] > RewriteRule^(. *) $ Http://domain.com/dir/$1 [L, R = 301]> Если им добавить этот код в /dir/.htaccess то он перенаправляет> [http://dir.domain.com] > [http://www.domain.com/dir] на [http://domain.com/dir]> но он не перенаправляет [ http://www.dir.domain.com] @TerryE – HDTV

+0

@HDTV, обратите внимание на настройку Cond1 - также отредактируйте свой Q, чтобы добавить такую ​​информацию. – TerryE

0

Вы можете попробовать:

RewriteCond %{HTTP_HOST} ^((?!www).+)\.domain\.com$ 
RewriteRule^http://domain.com/%1 [L,NE] 

Пожалуйста, измените домен в своем домене, когда вы введете sub1.domain.com, тогда он будет перенаправлен на domain.com/sub1, когда вы введете sub2.domain.com, то он перенаправит домене.com/sub2 ....

+0

Просьба дать подробный ответ –

Смежные вопросы