0

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

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

    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 ( / ) 中添加了一个 index.php :

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

现在我的 web 可以正常工作但不完全,我的意思是,没有 css 样式,没有 js,也没有图像,但只有当我使用 $this->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 ....

那么,有人有这方面的经验吗?对付魔鬼?

提前致谢。

4

2 回答 2

0

不要

include 'public/index.php';

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

/../application

application

我不确定是什么

define('RUNNING_FROM_ROOT', true);

应该是这样做的。

于 2013-07-10T11:51:24.577 回答
-1

你可以试试下面的网址

RewriteEngine On
RewriteRule .* index.php

Zend 和 .htaccess

于 2013-07-10T13:13:58.783 回答