Zend Framework с поддоменами

У меня возникла проблема с тем, чтобы Zend Framework хорошо работал с субдоменами на моем сервере. У меня есть стек LAMP, работающий на Ubuntu 11.10, я также использую динамическую службу DNS, в которой определены записи моей зоны. Итак, в основном мой DNS настроен так:

DNS: Зарегистрировано в одной компании и указывает мое доменное имя на серверах имен динамического DNS здесь.

С хостом Dynamic DNS у меня есть 3 определенные записи зоны типа A:

mydomain.com 000.00.0.0
www.mydomain.com 000.00.0.0
*.mydomain.com 000.00.0.0  <-- wildcard to catch all subdomains

Настройка Apache:

в /etc/apache2/sites-available :: /sites-enabled у меня есть настройка по умолчанию для mydomain и другой виртуальный хост для mysubdomain.mydomain.com

/var/www : у меня есть папка mydomain.com/public /var/www/public в качестве корня документа

/var/www/mysubdomain: у меня есть mysubdomain.mydomain.com, использующий папку /var/www/mysubdomain/public в качестве корня

Я думаю, что все это настроено правильно, потому что я правильно обрабатываю любой запрос к www.mydomain.com, а также правильно обрабатываю любой запрос к www.mysubdomain.mydomain.com.

НО, когда я делаю запрос типа www.mysubdomain.mydomain.com/:controller или www.mysubdomain.mydomain.com/:controller/:action, сервер выдает ошибку 404 Not Found со следующим сообщением:

The requested URL /controller/action was not found on this server.

Я думаю, что это проблема с моим .htaccess, который настроен следующим образом в

мой .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php 

Дело в том, что когда приложение, к которому я сейчас пытаюсь получить доступ, настроено и доступно как обычный домен, например www.mysubdomain.com, все работает.


person John    schedule 06.02.2012    source источник


Ответы (1)


Я использую следующий .htaccess:

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

Может быть, вы могли бы попробовать и предоставить результаты.

person Goeran    schedule 06.02.2012
comment
Получение ошибки внутреннего сервера 500 с этим .htaccess, что странно, потому что, если я правильно помню, это рекомендуемый по умолчанию .htaccess для zf - person John; 06.02.2012
comment
Можете ли вы разместить test.php только с помощью ‹?php phpinfo(); ?› в нем в папке /public и посмотреть, есть ли у вас к нему доступ? Или вы тоже получаете 500 за это? - person Goeran; 06.02.2012
comment
Вы установили AllowOverride FileInfo для своего виртуального хоста в httpd.conf? Это необходимо, чтобы разрешить файлам .htaccess включить механизм перезаписи. - person Goeran; 06.02.2012
comment
Извините, нашел свою ошибку. Это была новая установка apache. Мне пришлось запустить a2enmod rewrite, чтобы включить перезапись URL. Хотя мой оригинальный .htaccess все еще работает, я дал Goeran ответ за потраченное время. - person John; 06.02.2012