0

对于我使用的每个测试环境,我已经阅读了几个尝试直接从 htdocs(不创建虚拟服务器)使用 ZendFramework 的地方。这是一个开发环境,所以我不关心安全问题,也不想每次都修改hosts文件。我使用 xampp 1.7.3 在 Windows 上工作

我重新创建了 zend 结构,但在 htdocs 的文件夹中。比方说:C:\xampp\htdocs\project

到目前为止,我在项目根目录中找到了使用以下 .htaccess 的解决方案

RewriteEngine On
RewriteRule ^(.*)$ public/$1?%{QUERY_STRING} [QSA,L]

在 C:\xampp\htdocs\project\public 我使用默认的 Zend .htaccess

SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

在我的布局中,我添加了base标签来重定向 img、css 和 js 链接。当我尝试将 css 字体包含到我的项目(woff 文件)中时,我的问题出现了,该字体已被重定向到 htaccess 规则中的任何位置,导致 400 错误代码。

所以我的问题是:这里有什么问题?如何重定向每个控制器(php文件)但没有任何其他现有文件

顺便说一句......我无法找到让我自己工作的 htaccess 文件的方法。我总是发现自己在寻求帮助:(

提前致谢

4

1 回答 1

0

解决您的问题的最简单方法是像这样构造您的文件:

  • public/文件夹(index.php、.htaccess)的内容放入C:\xampp\htdocs\project. 您将没有公用文件夹。对于此应用程序的目的,project/ 您的公用文件夹。
  • application/文件夹放入C:\xampp\htdocs.
  • 为了额外的安全性,添加一个.htaccess包含Deny from allapplication/文件夹中的文件,因为它不在文档根目录之外。

这应该允许您使用现有的 ZF .htaccess 规则,并且不需要您使用任何 RewriteBase 或基本 URL 来加载您的 CSS/JS 文件。

只需确保您想要在布局或视图中引用 URL 的任何地方都可以使用baseUrl帮助程序(例如<img src="<?php echo $this->baseUrl('images/foo.png') ?>" />

于 2012-08-31T18:16:51.810 回答