apache mod_rewrite субдомен к директории - PullRequest
3 голосов
/ 24 декабря 2010

Привет, ребята, у меня есть 4 сервера, и я хочу объединить их, например, с одним доменом, чем я сейчас занимаюсь

games.example.org www.example.org и т. Д. Я хочу

если кто-нибудь получит доступ к www.example.org/games/

я хочу показать в браузере www.example.org/games/ виртуально, но физически его файлы будут размещаться в играхсервер example.org?

как?

1 Ответ

4 голосов
/ 24 декабря 2010

Чистых правил mod_rewrite будет недостаточно, поскольку они также требуют mod_proxy для корректной работы подзапросов.Особенно, если вы хотите, чтобы все абсолютные ссылки автоматически переписывались при возврате страницы.Если у вас есть полный доступ к Apache, этот код можно использовать в разделе virtualhost вашего домена www.example.org:

<Location  /games>
        ProxyPassReverse http://games.example.org
        ProxyPassReverse http://games.example.org:80

        RewriteEngine On
        RewriteRule games(.*)$ http://games.example.org/$1 [QSA,P,L]
</Location>

Последний RewriteRule действительно то, что вам нужно, но флаг "P"скорее всего, не будет работать, если вы не сможете загрузить mod_proxy.Убедитесь, что загружаете mod_proxy с наиболее строгими настройками и разрешаете запросы прокси, хотя директивы ProxyPass.

Также ProxyPassReverse НЕ будет работать в .htaccess.Это должно быть в самом конфиге Apache vhost.

Надеюсь, это поможет!

...