Zend framework Zend AutoLoader在共享主机下无法正常运行

Zend framework Zend AutoLoader在共享主机下无法正常运行,zend-framework,deployment,shared-hosting,Zend Framework,Deployment,Shared Hosting,我最近在一个共享主机上启动了一个zend framework项目。经过很多努力,我得到了第一个索引页面,但是没有找到所有的自动加载类,比如模型、表单、映射器 这是我在根文件夹的公共目录之外使用的.htaccess的版本 RewriteEngine On RewriteRule ^\.htaccess$ - [F] RewriteCond %{REQUEST_URI} ="" RewriteRule ^.*$ /public/index.php [NC,L] RewriteCond %{RE

我最近在一个共享主机上启动了一个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中被识别,但超过它,什么都不起作用

我做错了什么或遗漏了什么?

请使用此选项

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文件。直接将虚拟主机映射到public dir。

我认为如果您从Zend Framework“public”文件夹复制
index.php
.htaccess
,并将其放入
public\u html
或等效目录中。如果Zend Framework应用程序目录与public_html位于同一目录中,那么默认的.htaccess文件和index.php文件应该可以工作

/home/yoursite
--application/
---- controllers
---- forms/
---- models/
---- views/
-- library/
-- public_html/ (public)
---- .htaccess
---- index.php

你能试试我寻找并应用的解决方案吗。这对我有用。

您可以通过以下方式填写/public\u html/.htaccess(非/public\u html/public/.htaccess)的所有内容:


你的.htaccess看起来很奇怪,但我不认为这是原因。Zend Framework是否位于php inlude路径上?能否显示包含路径?你能告诉我们自动加载器失败时引发的异常吗?你能告诉我们你的代码吗?它应该可以工作,自动加载器通常与重写规则无关。但是如果没有某种错误消息,很难判断。我想,您可能不知道我问的是如何在共享托管环境中部署。这是zend frameword附带的默认.htaccess。但是,找不到类,文件路径也不工作。能否发布index.php文件的外观,以及您需要使用stock.htaccess文件。
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]