LinuxForum.Fans
Тема

Редирект в Apache

Автор: ufomen 8 сообщений 3508 просмотров
#161001

Всем привет!
Есть два домена abc.com и abc.org оба ссылаются на одну и ту же страничку. Изначально задача решилась просто при помощи алиасов.

text
<VirtualHost *:80>
    ServerAdmin webmaster@abc.com
    ServerName abc.org 
    ServerAlias abc.com www.abc.com www.abc.org
    ErrorLog "logs/abc.org-error_log"
    CustomLog logs/abc.org-access_log common

ProxyRequests Off ProxyPass / http://abc.local:80/ ProxyPassReverse / http://abc.local:80/

<Location /> Order allow,deny Allow from all </Location> </VirtualHost>

Но позже потребовался настоящий редирект всех возможных вариантов (www.abc.org www.abc.com abc.com) ---> abc.org (именно в таком виде на org без www)

физически это один и тот же сайт они находятся на машине в локальной сети, с алиасами как я показал в первом примере все работает. Единственное что в окошке браузера после загрузки отображается именно тот сайт который вбили.
тоесть если вбил www.abc.com то сайт открывается нормально но в окне будет именно это имя.

Это поведение не устраивает владельцев сайта, им нужно чтобы при вбивании в строчку браузера www.abc.com или abc.com или www.abc.org происходил явный редирект на abc.org тоесть загружался сайт (что происходит и сейчас), а в адресной строке браузера высвечивался abc.org (чего при использовании алиасов НЕ происходит)

Как это можно осуществить? пробовал и так и эдак не выходит!

#161009
text

<VirtualHost *:80>
    ServerAdmin webmaster@abc.com
    ServerName abc.com
    ServerAlias abc.com www.abc.com
    ErrorLog "logs/abc.org-error_log"
    CustomLog logs/abc.org-access_log common

ProxyRequests Off ProxyPass / http://abc.local:80/ ProxyPassReverse / http://abc.local:80/

<Location /> Order allow,deny Allow from all </Location>

</VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@abc.com ServerName abc.org ServerAlias abc.org www.abc.org ErrorLog "logs/abc.org-error_log" CustomLog logs/abc.org-access_log common

ProxyRequests Off ProxyPass / http://abc.local:80/ ProxyPassReverse / http://abc.local:80/

<Location /> Order allow,deny Allow from all </Location> </VirtualHost>

?

#161011

М... Не вижу чем мой вариант отличается от вашего? В плане конечного выхлопа.
Нужен именно явный редирект всех перечисленных выше доменов на abc.org

тоесть чтоб при попытке юзера войти на abc.com www.abc.org www.abc.com его перекидывало на abc.org и в строчке браузера с адресом после загрузки соответственно отображался именно abc.org

#161013

Я не знаю как у вас что настроено. Но у меня при таком варианте + указываю директорию всё нормуль.
Кстати а abc.org ваш сайт?

#161017
Kettler написал:
Я не знаю как у вас что настроено. Но у меня при таком варианте + указываю директорию всё нормуль.
Кстати а abc.org ваш сайт?

Да, оба сайта мои com и org. физически это один и тот же сайт они находятся на машине в локальной сети, с алиасами как я показал в первом примере все работает. Единственное что в окошке браузера после загрузки отображается именно тот сайт который вбили.
тоесть если вбил www.abc.com то сайт открывается нормально но в окне будет именно это имя.

Это поведение не устраивает владельцев сайта, им нужно чтобы при вбивании в строчку браузера www.abc.com или abc.com или www.abc.org происходил явный редирект на abc.org тоесть загружался сайт (что происходит и сейчас), а в адресной строке браузера высвечивался abc.org (чего при использовании алиасов НЕ происходит)

#161023

Эм, вообще все плюшки включаются если apache собран с модулем mod_rewrite, дальше гугглим на эту тему =)

#161026
i2ks написал:
Эм, вообще все плюшки включаются если apache собран с модулем mod_rewrite, дальше гугглим на эту тему =)

Спасибо кЭп! :) Естественно данный модуль присутствует wink

Гуглил, нагуглил много но не работает. Вот и не пойму что делаю не так... Если кто может ткните носом как должно быть, потому что я что-то явно упускаю... :(

#161041

Победил!

В моем случае надо было сделать так:

text
<VirtualHost *:80>
    ServerAdmin webmaster@abc.com
    ServerName abc.org 
    ServerAlias abc.com www.abc.com www.abc.org
    ErrorLog "logs/abc.org-error_log"
    CustomLog logs/abc.org-access_log common

ProxyRequests Off ProxyPass / http://abc.local:80/ ProxyPassReverse / http://abc.local:80/

<Location /> Order allow,deny Allow from all </Location> </VirtualHost>

# Именно эта чать редиректит алиасы так как мне было нужно <VirtualHost *:80> ServerAlias abc.com www.abc.com www.abc.org redirect permanent / http://abc.org </VirtualHost>

Всем спасибо!

Войдите или зарегистрируйтесь, чтобы ответить.