2010-04-08 2 views
0

В большинстве примеров показано, как перенаправить весь субдоменный трафик в основной домен, поддерживая структуру каталогов. На самом деле я этого не хочу. Я хочу перенаправить весь субдоменный трафик (сайт уходит) в основной домен. Это не работает:Использовать htaccess для перенаправления всего трафика из поддомена в домен без поддержки структуры каталогов

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/ [R=301,L] 

Что произойдет, если вы идете на это:

http://sub.newdomain.com/some/path/

Вы получаете это:

http://www.newdomain.com/some/path/

Я хочу, чтобы все это пойти к корню.

ответ

1

Как насчет простого 301 перенаправления в конфигурационном файле apache для субдомена?

перенаправлять все файлы на вашем домене использовать это в вашем файле .htaccess , если вы находитесь на веб-сервере UNIX:

redirectMatch 301 ^(.*)$ http://www.domain.com 
redirectMatch permanent ^(.*)$ http://www.domain.com 

и другой пример

Если вам нужно перенаправить http://mysite.com на http://www.mysite.com, и у вас есть mod_rewrite включен на ваш сервер, вы можете поместить его в свой файл .htaccess:

EDIT: Если вы хотите использовать thi s, просто удалите $ 1 из правил в примерной ссылке, если первый вариант выше не работает.

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example\.com 
RewriteRule ^(.*)$ http://www.example.com/ [R=permanent,L] 

или это:.

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/ [R=301,L] 

Эти выдержки из here

1

Просто добавьте знак вопроса в конце URL назначения, если вы хотите, чтобы исключить все завершающие данные (например, структура каталогов , параметры).

В вашем случае, это будет просто обновлен до этого:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/? [R=301,L] 
0

Это обрабатывает подстановочные поддомены, и случай, когда клиент ставит WWW перед тем подобласти

# wildcard.domain.com -> www.domain.com/wildcard 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC] 
RewriteCond %1 !^(www)$ [NC] 
RewriteCond %1 !^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/%1/ [R=301,L] 

# www.wildcard.domain.com -> www.domain.com/wildcard 
RewriteCond %{HTTP_HOST} ^(www\.(.*))\.domain\.com$ [NC] 
RewriteCond %1 !^www$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/%2 [R=301,L] 
Смежные вопросы