共享主机上的子目录上的Zend Framework

时间:2011-07-12 18:03:32

标签: php zend-framework shared-hosting subdirectory

现在我正在使用zf v.1.10。对于部署,我必须将我的项目上传到共享主机上的子目录。如果域名是www.mycompany.co.id,那么我的项目地址将是 www.mycompany.co.id/myproject / 。在myproject目录中,我把htaccess文件放在这样:

RewriteEngine on

RewriteRule ^(.*)$ /myproject/public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /myproject/public/index.php [NC,L]

在公共目录中,我把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]

这是我的application.ini:

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
resources.frontController.baseUrl = "/myproject"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.view.doctype = "XHTML1_TRANSITIONAL"
autoloadernamespaces.cal = "Cal_"
autoloadernamespaces.box = "Box_"
autoloadernamespaces.report = "Report_"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = uname
resources.db.params.password = p4ssw0rd
resources.db.params.dbname = myprojct

我在项目中实现了zend_auth和zend_acl,因此第一页将显示登录表单。
问题是当我执行表单登录时,没有响应。
登录表单将指向(操作设置为)“身份验证”控制器和“loginauth”操作。
我试图在loginauth“action”中回应一些东西,但它仍然显示登录表单。
在我的本地计算机(Windows)上,一切运行良好 请给我建议.. 感谢

1 个答案:

答案 0 :(得分:0)

假设您使用Zend_Form:

您可能需要“告诉”Zend_Form使用您的控制器baseUrl。尝试Sub-Class Zend_Form并覆盖setAction()方法。

或者,您可以使用表单实例中的setAction()mutator。