Как я могу использовать mod rewrite, чтобы указать на подкаталог с заданным поддоменом? - PullRequest
1 голос
/ 04 февраля 2011

У меня это почти сработало несколько часов назад, но я не могу заставить все вещи переписывания модов работать правильно для Zend.

Учитывая эту структуру каталогов:

/home/branches/branch1/public/index.php
/home/branches/branch2/public/index.php
/home/branches/branch3/public/index.php

Как я могу получить к ним доступ таким образом:

branch1.branch.example.com
branch2.branch.example.com
branch3.branch.example.com

Без необходимости жесткого кода в каждой ветви?

Вот моя отправная точка ( источник ), (я как-то могув данный момент это даже не работает, но я клянусь, это сработало сегодня утром, ха!).

ServerAlias *.branch.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} .* [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.branch\.example\.com
RewriteCond /home/branches/%1/public
RewriteRule ^(.*) /%1/$1 [L]

(Примечание: на самом деле я работаю с огромной базой кода, используя старую альфа-версиюZF, который использует /www/errors.php в качестве начальной загрузки вместо /public/index.php (и может даже потребоваться некоторые правила переписывания, отличные от текущей версии), но я изменил приведенный выше код для соответствия текущей настройке ZF)

1 Ответ

1 голос
/ 04 февраля 2011

Вы настроили субдомен подстановочных знаков (для целей маршрутизации)?Это не сработает, если вы не сделаете.

Я также думаю, что эта строка не будет работать:

RewriteCond /home/branches/%1/public

Я думаю, что ваша последняя строка должна выглядеть примерно так:

RewriteRule ^(.*)$ /home/branches/%1/public/$1 [L]
...