URL перенаправления в Apache VirtualHost?

Самая важная причина начать использовать VMware состояла бы в том, что это - платформа, которую Ваша новая компания выбрала для их платформы VM.

VMware имеет vMotion для перемещения, машины от одного хоста до другого живут. С vSphere 4.0 (просто выпущенный) у Вас есть опция использовать VMware FT, который является новой отказоустойчивой функцией, которая допускает мгновенную обработку отказа в случае отказа оборудования.

VMware имеет много функций экономии электроэнергии (особенно в vSphere), которые позволяют, чтобы хосты пошли вверх и вниз по мере необходимости для экономии электроэнергии.

61
задан 8 March 2010 в 22:56
4 ответа

Складывается mod_rewrite правила прекрасны в файле VirtualHosts, кроме RewriteBase правило. Я закончил с этим:

<VirtualHost *>
  ServerName www.example.com
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www.example.com
  RewriteRule ^/(.*)$ http://example.com/$1 [L,R=301]
</VirtualHost>

Править: на совете joschi в комментариях я теперь использую эту упрощенную версию с помощью Redirect директива от mod_alias:

<VirtualHost *>
  ServerName www.example.com
  Redirect 301 / http://example.com/
</VirtualHost>
105
ответ дан 28 November 2019 в 19:32
  • 1
    Вам не нужен mod_rewrite для этого. Используйте mod_alias и его директиву RedirectPermanent вместо этого. –  joschi 9 March 2010 в 08:58
  • 2
    @joschi: Каково было бы преимущество этого? Это быстрее? –  DisgruntledGoat 9 March 2010 в 19:10
  • 3
    Вы don' t нужно полноценное, переписывают механизм со всеми его проверками и возможностями просто перенаправить клиент. Это было бы (незначительно) быстрее, так как mod_alias не рядом так же сложен как mod_rewrite и you' d только нужна одна директива (RedirectPermanent) вместо два с mod_rewrite. И наконец, что не менее важно, по моему скромному мнению, it' s легче понять, что происходит в конфигурации, когда кто-то смотрит на нее в первый раз. –  joschi 10 March 2010 в 08:00

Можно добавить ServerAlias example.com к VirtualHost но производительность будет отличаться от перенаправления.

Править

Так как Вы хотите перенаправить, и Вам не нужна передовая функциональность, она походит на использование Redirect должен быть достаточным для Вас. Вы поместили бы Redirect в соответствии с директивой VirtualHost.

Клиентское решение состояло бы в том, чтобы использовать a meta refresh тег.

2
ответ дан 28 November 2019 в 19:32
  • 1
    Можно ли объяснить немного далее? Как я перенаправил бы www.example.com к example.com использование этого метода? –  DisgruntledGoat 9 March 2010 в 23:31
  • 2
    В Вашем основном vhost у Вас есть записи и для ServerName и для ServerAlias. У каждого есть example.com и другой www.example.com. Затем обе записи DNS получат доступ к документам, указанным в том же vhost. –  Warner 9 March 2010 в 23:56
  • 3
    Я хочу сделать перенаправление хотя, не только псевдоним. –  DisgruntledGoat 10 March 2010 в 20:17
  • 4
    Затем joshchi' s рекомендация может быть хороший подход для Вас. Кажется, что волосы разделяются в этой точке. –  Warner 10 March 2010 в 20:50

хорошо, Вы могли создать один виртуальный хост к ИМЕНИ СЕРВЕРА www.example.com и иметь его перенаправление к другому виртуальному хосту с именем сервера example.com

1
ответ дан 28 November 2019 в 19:32

Будьте очень осторожны с переадресацией 301, потому что по умолчанию браузер, который получает перенаправление 301, будет хранить его постоянно - это означает, что вы откажетесь от управления что увидит этот браузер, когда попытается получить доступ к домену www.example.com .

См., например, это обсуждение http://getluky.net/2010/12/14/301 -redirects-cannot-be-undon /

Так что либо убедитесь, что он не кэшируется, либо используйте mod_proxy (я рекомендую mod_proxy).

Если вы не возражаете, позволяя пользователю видеть изменение URL в браузере адресная строка, используйте mod_rewrite:

<VirtualHost *>
 ServerName www.example.com
 RewriteEngine on
 RewriteCond %{HTTP_HOST} ^www.example.com
 RewriteRule ^/(.*)$ http://example.com/$1 [L,R=301,E=nocache:1]
## Set the response header if the "nocache" environment variable is set
## in the RewriteRule above.
 Header always set Cache-Control "no-store, no-cache, must-revalidate" env=nocache
## Set Expires too ...
 Header always set Expires "Thu, 01 Jan 1970 00:00:00 GMT" env=nocache
</VirtualHost>

Если вы хотите "перенаправить"чтобы быть невидимым для пользователя, используйте mod_proxy:

<VirtualHost *>
 ServerName www.example.com
 ProxyRequests Off
 <Proxy *>
 Order Deny,Allow
 Deny from all
 Allow from 203.0.113.67
 </Proxy>
 ProxyPass / http://example.com/
 ProxyPassReverse / http://example.com/
</VirtualHost>

Следует отметить, что mod_proxy при неправильной настройке может нанести вред вашей сети.

4
ответ дан 28 November 2019 в 19:32

Теги

Похожие вопросы