Zend AutoLoader не работает должным образом под общим хостингом - PullRequest
0 голосов
/ 02 октября 2011

Я недавно запустил проект Zend Framework на виртуальном хостинге. С большим трудом я заработал первую страницу указателя, но передал ей все автозагрузимые классы, такие как модели, формы, средства отображения.

Вот версия .htaccess, которую я использую вне публичного каталога в корневой папке.

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

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

Немного удивительным является тот факт, что на главной странице или в baseURL распознаются те же картографы и формы, но они превосходят его, ничего не работает.

Что я делаю неправильно или отсутствует?

Ответы [ 3 ]

1 голос
/ 10 октября 2011

Я думаю, что если вы скопируете index.php и .htaccess из "общедоступной" папки Zend Framework и поместите ее в public_html или эквивалентный каталог.Если каталог приложения Zend Framework находится в том же каталоге, что и public_html, то должны работать файл .htaccess по умолчанию и файл index.php.

/home/yoursite
--application/
---- controllers
---- forms/
---- models/
---- views/
-- library/
-- public_html/ (public)
---- .htaccess
---- index.php
0 голосов
/ 02 декабря 2013

Можете ли вы попробовать решение, которое я искал и применить. Это сработало для меня. http://blog.motane.lu/2009/11/24/zend-framework-and-web-hosting-services/

Вы заполняете все содержимое /public_html/.htaccess (не /public_html/public/.htaccess)

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
0 голосов
/ 02 октября 2011

Используйте это вместо

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

Основная идея заключается в том, что если файл существует для запрошенного URL-адреса на сервере, то отправьте его в браузер клиента, в противном случае перенаправьте запрос приложению ZF для его обработки.

Чтобы сделать общедоступный каталог доступным в корневом домене, отредактируйте файл Apache httpd.conf. Подключите ваш виртуальный хост к общедоступному каталогу напрямую.

...