2016-09-16 2 views
0

У меня есть сайт:Apache переписывают в разных местах

oldsub.oldsite.com, что мне теперь нужно переписать newsub.newsite.com

До сих пор я это, который, кажется, работает для сайта :

<VirtualHost *:80> 
    ServerName oldsub.oldsite.com 
    Redirect 301/http://newsub.newsite.com 
    </VirtualHost> 

НО

Существует одна страница, которую мне нужно перенаправить в другое место на новом сайте.

oldsub.oldsite.com/oldpage теперь необходимо перейти к newsub.newsite.com/bla/bla/bla/newpage

Как объединить обе эти вещи? Т.е. одна конкретная страница перенаправляется на новую страницу на новом сайте, а все остальное просто переходит на главную страницу нового сайта.

+0

Просто поместите исключение для более конкретного URL _before_ более общего «поймать все», которое у вас уже есть. – arkascha

+0

@arkascha Можете ли вы привести пример того, как будет выглядеть этот полный призрак? – SAguy

ответ

0

Просто поместите исключение для более конкретного URL, прежде чем более общий «поймать всех» у вас уже есть:

<VirtualHost *:80> 
    ServerName oldsub.oldsite.com 

    RewriteEngine on 
    RewriteRule ^/oldpage http://newsub.newsite.com/bla/newpage [L,R=301,QSA] 

    Redirect 301/http://newsub.newsite.com 
</VirtualHost> 

Вы, очевидно, нужен модуль перезаписи внутри HTTP-сервера для этого. Но он должен быть доступен одним щелчком для всех типичных дистрибутивов.

+0

Не получилось. ударил oldsub.oldsite.com/oldpage прислал меня на это: newsub.newsite.comoldpage/ – SAguy

+0

Вы _did_ перезагрузите конфигурацию своего http-сервера (перезапустите deamon)? – arkascha

+0

О, и отключите кеш клиентов для тестирования или используйте анонимную вкладку. Вероятно, вы в прошлом кэшировали попытку перенаправления _did_ в прошлом. '301' - перенаправление _permanent_ ... – arkascha

0

Спасибо @arkascha за советы. Получил меня в направлении записи. Это то, что сработало:

<VirtualHost *:80> 
ServerName oldsub.oldsite.com 

RewriteEngine on 
RedirectMatch 301 ^/oldpage http://newsub.newsite.com/bla/newpage 

Redirect 301/http://newsub.newsite.com 
</VirtualHost> 

Похоже, что перезапись и перенаправление не работают хорошо вместе?

+0

Подождите, все еще проблема. Если у меня есть oldsub.oldsite.com/something, он перенаправляет меня на newsub.newsite.comsomething, но он должен забрать меня только на newsub.newsite.com. Старая страница, указанная в redirectmatch, отлично работает, но ничего другого нет. – SAguy

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