Как настроить Apache2 для перенаправления URL - PullRequest
5 голосов
/ 04 января 2011

Я пытаюсь настроить перенаправление URL в Apache. Я попробовал несколько подходов, и ничего не работает. Может кто-нибудь сказать мне решение этого, поскольку это не кажется слишком сложным.

Я собираюсь перенаправить запрос с:

https://myhost/configuration/jmx-console

до:

http://myanohterhost/jmx-console

Это переадресация https на http.

Может ли кто-нибудь указать мне правильное направление?

Большое спасибо!

Ответы [ 5 ]

9 голосов
/ 04 января 2011

Вы можете использовать директиву RedirectMatch, чтобы заставить Apache отправлять пользователя куда-то еще:

RedirectMatch 301 ^(.*)$ http://www.anotherserver.com$1

См. Следующее:

http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch

http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx

3 голосов
/ 04 января 2011

Обычный способ сделать это был бы в конфигурации текущего сервера (или виртуального хоста) `myhost ':

Redirect /configuration/jmx-console http://myanohterhost/jmx-console

Edit: Согласно вашему комментарию, похоже, что вы можете сделать это, используя один из следующих методов:

1. mod_proxy, используя настройку обратного прокси

Просто сопоставьте URL-адреса удаленного сервера с локальным URL-адресом:

ProxyPass /configuration/jmx-console http://myanohterhost/jmx-console
ProxyPassReverse /configuration/jmx-console http://myanohterhost/jmx-console

2. mod_rewrite с использованием функции пропускной способности прокси

RewriteRule ^configuration/jmx-console(.*)$ http://myanohterhost/jmx-console$1 [P]

При использовании обратного проксирования могут быть некоторые предостережения, поэтому я рекомендую вам внимательно прочитать http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html, чтобы увидеть различные варианты, доступные при использовании обратного проксирования.

1 голос
/ 21 октября 2015

Ссылаясь на заголовок вопроса Как настроить Apache2 для перенаправления URL Я бы предложил простое решение, которое прекрасно работает для меня (используя RedirectPermanent из mod_alias).

Сначала мы проверяем, есть ли в нашем домене правильные записи DNS, например A введите запись:

name somefancydomain.com
TTL 600
type A
value 10.100.10.100

и CNAME запись:

name www.somefancydomain.com
TTL 600
type CNAME
value somefancydomain.com

Затем мы переходим на веб-сервер Ubuntu с IP 10.100.10.100 и настраиваем новый виртуальный хост:

cd /etc/apache2/sites-available/
sudo vim redirect.conf

Вставьте конфигурацию, как показано ниже, и сохраните:

<VirtualHost *:80>

    ServerName somefancydomain.com
    ServerAlias www.somefancydomain.com

    RedirectPermanent / https://redirectedurl.com/

    ServerAdmin admin@redirectedurl.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Включить новый виртуальный хост и перезагрузить apache:

sudo a2ensite redirect.conf
sudo service apache2 reload

Наконец, проверьте, работает ли перенаправление.

0 голосов
/ 31 октября 2018

Предполагается, что вы делаете это на своих хостах "myhost"

1 / touch /etc/apache2/conf-available/my-redirect.conf

2 / отредактируйте my-redirect.conf и добавьте

Redirect permanent /configuration/jmx-console http://myanotherhost/jmx-console

3 / a2enconf my-redirect.conf

4 / apache2ctl configtest

5 / это должно дать "Синтаксис ОК"

6 / systemctl restart apache2

0 голосов
/ 10 сентября 2013

Согласно сайту Apache, вы должны , а не использовать mod_rewrite для простого перенаправления с http на https (или другим способом, который кажется более распространенным):

http://httpd.apache.org/docs/2.2/rewrite/avoid.html

Сайт предлагает использовать mod_alias с директивами Redirect и RedirectMatch .

...