Zend - 使用htaccess重定向到“public”子目录

时间:2011-07-07 11:34:55

标签: php zend-framework

我开始使用netbeans + zend开发应用程序。我有一个主机并在那里上传了项目文件,但我还没有设法将请求从根目录重定向到公共子目录。我得到每个请求的zend项目的404错误页面。 有人能帮助我吗?

插件:

我使用以下htaccess重定向(wwwroot / .htaccess):

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [NC,QSA]

在公共文件夹中是项目的默认(生成)htaccess(wwwroot / public / .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]

zend项目在wwwroot中,我没有访问apache配置,只能创建htaccess文件。 zend框架文件位于wwwroot / library / zend中。项目文件包含在localhost中,但不在我的godaddy主机上。 :S

在localhost上,我按照每个请求获取了一个404页面,在godaddy上我收到以下错误:

  

警告:   require_once(Zend的/ Application.php)   [function.require-once]:失败了   open stream:没有这样的文件或目录   在   /home/content/14/7811914/html/public/index.php   第18行

如果我删除了wwwroot / htaccess,并使用“http:// localhost / public /”我得到了zend fw的开放页面,所以它可以工作,没有重定向,所以我想在localhost我有路由问题而我必须覆盖bootstrap或某个地方的东西.​​..在godaddy我不知道问题是什么...也许小写文件名,我尝试用tolowercase函数调用扩展自动加载模块...(明天。 ..)

2 个答案:

答案 0 :(得分:0)

您必须使用新文档根配置您的网络服务器。

访问.httpd.conf时,您可以为您的域设置新文档根目录。

使用confixx时,您会在管理面板中的“域”下找到它。

使用plesk时,您可以在名为vhost.conf的域名配置文件中编辑vhost特定配置

<Directory /var/www/vhosts/yourdomain.com/httpdocs/public>
Options -Includes -ExecCGI
SetEnv APPLICATION_ENV "development"
</Directory>
DocumentRoot /var/www/vhosts/yourdomain.com/httpdocs/public

之后运行你的plesk更新脚本。

/usr/local/psa/admin/sbin/websrvmng -u --vhost=yourdomain.com

答案 1 :(得分:0)

我在这里找到了解决方案: http://www.warpturn.com/zend-framework-on-godaddy-shared-hosting-linux/

这是一个set_include_path问题。我替换了public / index.php中的set_include_path参数,之后一切正常。