2012-08-31 103 views
0

我读过几个地方,试图直接从htdocs中使用ZendFramework(没有创建虚拟服务器),用于我使用的每个测试环境。这是一个开发环境,这就是我不关心安全问题,也不想每次都修改hosts文件的原因。我在Windows上使用xampp工作1.7.3没有virtualHost的Zend(重定向规则)

我重新创建zend结构,但在一个文件夹内部到htdocs。比方说:C:\ XAMPP \ htdocs中\项目

到现在为止,我发现了一个解决方案使用以下的.htaccess在项目根

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

内C:\ XAMPP \ htdocs中\项目\公共我使用默认的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文件工作。我总是发现自己事先寻求帮助:(

感谢

+0

阿呆我。在woff文件路径中发现问题。现在修复并运行良好。对不起,感谢您的时间 –

回答

0

您的问题最简单的办法就是构建这样的文件:

  • public/文件夹的内容(的index.php,.htaccess)是否在C:\xampp\htdocs\project,你会没有有一个公共文件夹。对于本申请的目的,project/公用文件夹。
  • application/文件夹放入C:\xampp\htdocs
  • 为了提高安全性,请在application/文件夹中添加一个.htaccess文件,其中包含Deny from all,因为它不在文档根目录之外。

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

只要确保任何你想引用一个URL在布局或视图使用baseUrl助手(例如<img src="<?php echo $this->baseUrl('images/foo.png') ?>" />

+0

。我不认为这可能是一个可能性,因为我想重新创建一个生产环境,并从htdocs根中的多个开发/测试应用程序中加入应用程序文件夹可能导致我意外的行为 –

+0

在这种情况下,您可以重命名应用程序目录并然后编辑'index.php'来使用重命名的目录,或者将它移出docroot并改变index.php来使用新的路径? – drew010

+0

发现问题(更新为评论)感谢您的时间 –