php – Zend应用程序从子目录获得Zend布局链接正常工作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Zend应用程序从子目录获得Zend布局链接正常工作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2160字,纯文字阅读大概需要4分钟。
内容图文
![php – Zend应用程序从子目录获得Zend布局链接正常工作](/upload/InfoBanner/zyjiaocheng/815/0fa1271c8e794aaba1b47b9c518043fb.jpg)
我在子目录中设置了Zend应用程序.不要问为什么我只是这样做(不是我喜欢的方法),但我没有那个选择. Zend应用程序驻留在一个名为dsa的子目录中.
http://dsa.dev/dsa
我的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$public/index.php [QSA,L]
这有效并将引导应用程序.我可以毫无问题地进入我的根目录和其他目录.
在我的application.ini我已经设置
resources.frontController.baseUrl = "/dsa".
在我的layout.phtml文件中如果我var_dump它看起来像这样的路径.
var_dump($this->baseUrl('css/main.css'));
http://dsa.dev/dsa/css/main.css
没有链接工作,所有css和js文件都没有正确链接.如果您按F12并查看它们,则会找不到任何文件的404.要获取显示文件的正确路径,我需要做什么.这是我第一次尝试在子目录中设置zend,显然我做的不对.我已经阅读了关于这个主题的所有内容.谢谢您的帮助.
解决方法:
我看到的至少一个问题是.htaccess文件中的重写规则不正确.
鉴于这些规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$public/index.php [QSA,L]
这些规则等同于:
RewriteCond%{REQUEST_FILENAME} -s [OR]#该请求是一个大小为>的常规文件. 0
RewriteCond%{REQUEST_FILENAME} -l [OR]#请求是一个符号链接的文件
RewriteCond%{REQUEST_FILENAME} -d [OR]#请求是存在的目录
如果以上任何一种情况属实,请求将被重写为public / index.php,这是不正确的.如果请求是针对磁盘上存在的文件,则不要重写它;相反,你只想提供该文件.
正确的.htaccess文件应如下所示:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$- [NC,L]
RewriteRule ^.*$public/index.php [NC,L]
这就是说,如果请求是针对大小为>的文件0,目录或符号链接,然后将请求路由到请求的实际文件(RewriteRule ^.* $ – ).如果这些条件都不成立,则将请求重写为index.php.
另外,我会继续完全摆脱公共目录.把公共内容拿出来放在/ dsa中. dsa现在是您的公用文件夹.您可以将应用程序目录存储在系统的任何位置,或者由于文件系统限制而必须将其放在dsa文件夹中,请确保在.htaccess文件中添加一条规则,拒绝对应用程序文件夹的所有访问.然后,您只需要快速更改index.php文件,告诉它使用APPLICATION_PATH常量的应用程序的正确路径.
我相信这两个变化应该可以解决你的问题.
内容总结
以上是互联网集市为您收集整理的php – Zend应用程序从子目录获得Zend布局链接正常工作全部内容,希望文章能够帮你解决php – Zend应用程序从子目录获得Zend布局链接正常工作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。