IIS7.5下配置CakePHP

Posted on 2010-04-08 22:13  wangshijun2010  阅读(1041)  评论(0)    收藏  举报

使用PHP已经有接近两年的时间了, 进来由于学习上的需要, 开始接触ASP.NET, 避免不了安装IIS, 在Windows 7下, 其版本为7.5.

之前在使用PHP的时候对于开发框架CakePHP很满意, 觉得它很优雅, 也用其开发了几个自己用的小网站, 现在转到IIS了, 只能考虑在IIS上运行PHPCGI, 几经折腾, 终于能在IIS上运行简单的PHP脚本, 但是 原来使用CakePHP开发的网站都无法使用, CakePHP采用了URLRewrite的技术, 这就是症结所在.去网上搜索了一番, 终于找到了解决方案:

文章的地址为: CakePHP on IIS

可是按照CakePHP官方的文档配置之后还发现URL能够正常解析, 但是所有的js, css, img都无法加载, 原本漂漂亮亮的页面现在看起来一团糟, 后来又从头到尾自习阅读那片文档, 发现之后的评论有很大借鉴价值!

这里贴上那个mod_rewrite.ini的具体内容, 也供大家参考[这个配置文件是借鉴最后那个评论者所以出的几条来写的],

Debug 1
Reload 100
#Browse LOT
#RewriteCond HTTP_HOST localhost

RewriteRule ^/tests/(sme|tomato|cakephp|access)/(img|css|files|js)(.*)$ /tests/$1/app/webroot/$2$3 [l]
RewriteRule ^/tests/(sme|tomato|cakephp|access)/$ /tests/$1/index.php [l]
RewriteRule ^/tests/(sme|tomato|cakephp|access)/(.+)\?(.*)$ /tests/$1/index.php?url=/$2&$3 [l]
RewriteRule ^/tests/(sme|tomato|cakephp|access)/(.*)$ /tests/$1/index.php?url=/$2 [l]

使用该规则之后, 可以访问的基于CakePHP的网站为:

  • http://localhost/tests/tomato
  • http://localhost/tests/cakephp
  • http://localhost/tests/sme
  • http://localhost/tests/access

需要注意的是:

  • 如果你的虚拟目录tests之下还有非基于CakePHP的应用程序, 在RewriteRule中不要写出来就是了, 否则可能引起混乱;
  • 对于CakePHP的img, css, js我们需要特殊的处理, 具体见上面的RewriteRule;

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3