2

Windows と II7 で mod の書き換えを構成しようとして問題が発生しました: CakePHP 2.2.2 は Windows IIS7 で動作しませんが、最終的に IIS7 のweb.configファイルを作成するために htaccess をインポートできました。

問題は、そのファイルが Cakephp フォルダーに作成され、メイン ページにアクセスできるようになったということです

現在、メイン サイト以外のビューにアクセスできません。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#url-rewrites-on-iis7-windows-hosts

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 {

}

何か案が?Windows上でCakephpを操作することは私を夢中にさせています...

4

2 に答える 2

7

私の応答は、ここに投稿されたソリューションの改善であることを言及する必要があります: 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>
于 2012-10-08T23:30:56.117 に答える
2

わかりました、最後に、このサイトで見つけたこの web.config を使用して動作させます: http://www2.palomar.edu/pages/sphillips/cakephp-with-iis-7-rewrite-rules-in-a-sub-フォルダ/

/{Path_To_CakePHP_Directory}//に変更しました。

于 2012-09-19T16:09:48.237 に答える