Php 如何将Zend Framework 2与IIS6上的虚拟目录一起使用?
我正在尝试建立Zend Framework 2环境,但没有成功。 我一直遵循这些指示: 一个区别是,我正在尝试将其安装到虚拟目录中。 一个示例URL是:Php 如何将Zend Framework 2与IIS6上的虚拟目录一起使用?,php,iis-6,rewrite,zend-framework2,iirf,Php,Iis 6,Rewrite,Zend Framework2,Iirf,我正在尝试建立Zend Framework 2环境,但没有成功。 我一直遵循这些指示: 一个区别是,我正在尝试将其安装到虚拟目录中。 一个示例URL是: http://localhost/12345678/index/index 我已通过键入以下内容进入“欢迎使用Zend Framework 2”页面: http://localhost/12345678/index.php/ 出于某种原因,结尾的斜杠很重要,否则页面将无法加载,我不知道为什么?我希望下面的链接能起作用,但它不起作用: ht
http://localhost/12345678/index/index
我已通过键入以下内容进入“欢迎使用Zend Framework 2”页面:
http://localhost/12345678/index.php/
出于某种原因,结尾的斜杠很重要,否则页面将无法加载,我不知道为什么?我希望下面的链接能起作用,但它不起作用:
http://localhost/12345678/
因为我们别无选择,只能使用IIS 6,所以我尝试在URL上使用Ionics重写过滤器,但没有成功。到目前为止,我尝试的是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php [NC,L]
and
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(\d*)/(.*) /$1/index.php/ [L,QSA]
and
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /12345678/index.php/ [NC,L]
我似乎能够进入欢迎页面和一般404错误页面(而不是Zend 404)。我无法访问测试控制器页面,甚至无法访问zend错误页面。
有谁能帮我找出Ionics IIRF.ini文件使用的重写规则,它允许我将Zend Framework 2与虚拟目录一起使用,或者为我指出错误的方向
提前感谢
我已经解决了这个问题,重新开始并遵循本教程,省去了Apache的内容:
http://samminds.com/2012/07/zend-framework-2-installation-on-xampp-for-windows/
我不完全确定它为什么工作,但IIS似乎正在读取.htaccess文件,这很好。当然,这让我想到了其他问题,但这个问题已经为我解决了:)。我没有用这个回答我自己的问题,因为我觉得我所做的不是解决我问题的正确方法。你看过ISAPI重写模块bij Helicon吗? 它支持Apache mod_重写规则语法。我以前在ZF 1上使用过这个模块,它工作起来很有魅力。
有一个免费版本有一些限制:谢谢你的建议。我已经尝试安装Helicon,但仍然遇到同样的问题。我觉得我不能访问,我可以访问这一事实是找出我的问题所在的关键。您的新htaccess文件是什么样子的,因为您原始问题中的第一个似乎没有太多意义,并且不是zf2应用程序的标准htaccess文件的样子。您是否使用了框架应用程序附带的htaccess?我将其作为模板附带的默认设置:RewriteCond%{REQUEST_FILENAME}-s[或]RewriteCond%{REQUEST_FILENAME}-l[或]RewriteCond%{REQUEST_FILENAME}-d RewriteRule^.$-[NC,l]RewriteCond%{REQUEST_URI}:$1^(/.+)(.+):\2$rule^(.*)-[E=BASE:%1]RewriteRule^(.*)${ENV:BASE}index.php[NC,L]好的,只是为了确保:您的虚拟目录指向公用文件夹,对吗?很好的调用,但确实如此。如果不是这样,我将无法访问localhost/12345678/index.php/,我可以访问,但无法访问localhost/12345678/index.php/