Указание нескольких доменов на разные папки - PullRequest
0 голосов
/ 19 марта 2011

Я пытался до своего предела. Mod_rewrite был таким кошмаром. Моя последняя попытка - приведенный ниже код, и даже при работе www.water.com я не мог заставить www.wind.com сделать то же самое. В журнале mod_rewrite я постоянно сравниваю www.wind.com (HTTP_HOST) с www.water.com. перезапись никогда не достигает второй группы строк. Кто-нибудь, возможно, знает, как этого добиться, пожалуйста?

RewriteEngine On
----------------------------------------------------------
RewriteCond %{HTTP_HOST} (www\.)?water\.com [NC]
RewriteCond %{REQUEST_URI} !^/zend/application/Water/ [NC]

# Excludes the redirection for files that physically exist ( -s); symbolic links ( -); and existing directories (-d).
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /water.php [NC,L]
----------------------------------------------------------
RewriteCond %{HTTP_HOST} (www\.)?wind\.com [NC]
RewriteCond %{REQUEST_URI} !^/zend/application/Wind/ [NC]

# Excludes the redirection for files that physically exist ( -s); symbolic links ( -); and existing directories (-d).
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /wind.php [NC,L]
----------------------------------------------------------

Ответы [ 2 ]

2 голосов
/ 19 марта 2011

Для группы воды у вас есть два RewriteRules после вашей последовательности RewriteConds.Первый RewriteRule применяется условно на основе результата RewriteConds.

Но не будет ли второй RewriteRule применен к всем оставшимся запросам, даже запросам к домену wind.com?Рассмотрим запрос на:

http://wind.com/mycontroller/myaction

Не удастся все RewriteConds для воды, но затем его заберут по:

RewriteRule ^.*$ /water.php [NC,L]

Не так ли?

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

1 голос
/ 19 марта 2011
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteCond %{HTTP_HOST} (www\.)?water\.com [NC]
RewriteCond %{REQUEST_URI} !^/zend/application/Water/ [NC]
RewriteRule ^.*$ /water.php [NC,L]

RewriteCond %{HTTP_HOST} (www\.)?wind\.com [NC]
RewriteCond %{REQUEST_URI} !^/zend/application/Wind/ [NC]
RewriteRule ^.*$ /wind.php [NC,L]

Это должно работать IMO.

...