关于共享主机的Zend Framework

cod*_*rex 16 zend-framework shared-hosting directory-structure

我是Zend Framework的新手.我想知道如何在共享主机上实现zend框架.由于zend框架文件夹结构,所有视图文件都放入"public"文件夹.

假设

"/"是我的主要根文件夹,公众就像"/ public"

这样网址就变成了" http:// site/public / ... ..bla bla ..."

它是否正确?

还是有其他方法吗?

我没有任何创建虚拟主机的权限.

那么该怎么办?

我希望你理解我的问题.如果没有,请问我.

谢谢!

opH*_*AME 12

我认为最好的方法是从公共目录(Zend Framework目录结构)中删除.htaccess,并将以下内容放入"root"目录:

 
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]

  • 这不适用于模块!如果我去管理员是模块的www.domain.com/admin,我会被重定向到www.domain.com/public/admin.怎么解决这个问题? (2认同)

Ric*_*nop 11

在您的基本路径(即/../public)下包含此.htacces文件:

RewriteEngine On

# Exclude some directories from URI rewriting
#RewriteRule ^(dir1|dir2|dir3) - [L]

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]
Run Code Online (Sandbox Code Playgroud)

并保留publc目录下的.htaccess.

所以你将有2个.htaccess文件,一个在公共目录下(普通的一个来自Zend Framework文档),第二个在你的基本路径下(我上面发布的那个).