如何在生产服务器上设置Zend Framework 1.12项目的重写条件?

时间:2013-07-08 15:49:05

标签: php .htaccess zend-framework

我阅读了很多关于如何将Zend Framework 1.12项目部署到生产环境的指南,我想我已经完成了所有步骤,但我无法在.htaccess上配置重写规则,首先要知道,服务器是共享服务器,因此,我无法访问任何配置,因此,问题只是重定向到我的/public/inedx.php文件。

首先,在我的主文件夹(/)中,我根据官方指南(http://framework.zend.com/manual/1.12/en/project-structure.rewrite.html -> Rewriting inside a VirtualHost )添加了一个包含此内容的.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]

我将此文件上传到我的主文件(/),仍然显示404错误。

然后,我在main(/)whit中添加了一个index.php:

<?php 
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';

现在我的网络工作但不完全,我的意思是,没有css样式,没有js,没有图像,但只有当我使用$ this-&gt; baseUrl()时,所以,在我的布局中我使用这样的css链接:

> <link href="<?php echo $this->baseUrl()."/css/global.css"; ?>"
> rel="stylesheet" type="text/css">
出现了404:

"NetworkError: 404 Not Found - http://www.mysite.com/css/global.css"

如果它应该是http://www.mysite.com/public/css/global.css,那么,我编辑我的布局,js和css现在正在工作,但当我点击一个链接时,如:

http://www.mysite.com/controller/action/#0-0

我得到另一个404 ....

那么,有人有这方面的经验吗?打击魔鬼?

提前致谢。

2 个答案:

答案 0 :(得分:0)

不要

include 'public/index.php';

处理此问题的最佳方法是将public / index.php与.htaccess一起移动到根文件夹中。完成后,从

中修改index.php中的APPLICATION_PATH
/../application

application

我不确定是什么

define('RUNNING_FROM_ROOT', true);

应该做任何一件事。

答案 1 :(得分:-1)

您可以尝试以下网址

RewriteEngine On
RewriteRule .* index.php

Zend and .htaccess