.htaccess的和CakePHP 2在Windows IIS7(Htaccess and Cak

2019-09-22 14:50发布

我有问题,试图在Windows和II7配置国防部重写: CakePHP的2.2.2不工作在Windows IIS7但最后我能以创建IIS7 web.config文件导入htaccess的。

在事情:既然文件已经在CakePHP的文件夹中创建和我可以访问到主页面,但尚未应用/应用程序/ Web根目录中,你可以找到2个.htaccess文件中创建。

现在,我不能访问任何其他视图比的主要场所,它显示了一个404页没有发现错误,我敢肯定,这是因为它没有得到在web.config中的.htaccess文件。

我的CakePHP的web.config文件看起来是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Imported Rule 1" stopProcessing="true">
                <match url="^$" ignoreCase="false" />
                <action type="Rewrite" url="app/webroot/" />
            </rule>
            <rule name="Imported Rule 2" stopProcessing="true">
                <match url="(.*)" ignoreCase="false" />
                <action type="Rewrite" url="app/webroot/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
</configuration>

虽然CakePHP的文档告诉你添加不同的代码(这使得意见工作,但没有风格被加载。和主页中不起作用。) http://book.cakephp.org/2.0/en/installation/advanced -installation.html#网址重写-ON-IIS7-Windows的主机

当试图从URL访问一个CSS文件我得到这个消息:

Missing Controller

Error: CssController could not be found.

Error: Create the class CssController below in file: app\Controller\CssController.php

<?php
class CssController extends AppController {

}

任何想法? 与CakePHP的窗口上的工作让我发疯了...

Answer 1:

我要指出,我的反应是在这里张贴在解决方案的改进: http://www2.palomar.edu/pages/sphillips/cakephp-with-iis-7-rewrite-rules-in-a-sub-folder/

更简单,更灵活的解决将是摆脱/ {} Path_To_CakePHP_Directory/共,包括斜杠(/)。 通过保持相对的路径,你的项目文件夹变成了更多的移动。 这里的web.config中是什么样子:

 <configuration>
   <system.webServer>
     <rewrite>
       <rules>
         <clear/>
         <rule name="Imported Rule 0" stopProcessing="true">
           <match url="^(img|css|files|js)(.*)$"></match>
           <action type="Rewrite" url="app/webroot/{R:1}{R:2}" appendQueryString="false"></action>
         </rule>
         <rule name="Imported Rule 1" stopProcessing="true">
           <match url="^(.*)$" ignoreCase="false" />
           <conditions logicalGrouping="MatchAll">
             <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
             <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
           </conditions>
           <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
         </rule>
         <rule name="Imported Rule 2" stopProcessing="true">
           <match url="^$" ignoreCase="false" />
           <action type="Rewrite" url="app/webroot/" />
         </rule>
         <rule name="Imported Rule 3" stopProcessing="true">
           <match url="(.*)" ignoreCase="false" />
           <action type="Rewrite" url="app/webroot/{R:1}" />
         </rule>
         <rule name="Imported Rule 4" stopProcessing="true">
           <match url="^(.*)$" ignoreCase="false" />
           <conditions logicalGrouping="MatchAll">
             <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
             <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
           </conditions>
           <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
         </rule>
       </rules>
     </rewrite>
   </system.webServer>
 </configuration>


Answer 2:

好吧,我终于得到它的工作使用该web.config中我在此网站上发现: http://www2.palomar.edu/pages/sphillips/cakephp-with-iis-7-rewrite-rules-in-a-sub-夹/

我只是改变了/ {} Path_To_CakePHP_Directory //。



文章来源: Htaccess and CakePHP 2 on windows IIS7