0

私はこれに数時間取り組んできました。Codeigniter フレームワークを Windows Azure Web サイトに配置しようとしています。PHP はうまく機能しますが、この書き換えルールを正しく機能させることができないようです。これは私のweb.configファイルです。

<?xml version="1.0"?>

    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="Rule" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
              </conditions>
              <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>

ファイルを Windows Azure Web サイトにアップロードし、ページを実行すると、次のindex.phpように返されますHTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request。私は Apache のバックグラウンドを持っています。Windows IIS は初めてです。どんな情報でも役に立ちます。ありがとうございます。

4

2 に答える 2

1

私は Apache のバックグラウンドを持っているため、あなたが提供した情報に基づいて、Windows IIS は私にとって新しいものです。あなたの問題は、URL 書き換えをサポートするための IIS 構成に関連していると確信しています。(既に URLRewrite をインストールし、Azure VM で構成している場合はお知らせください。この回答は削除します)

Windows Azure の既定では、IIS には URLRewrite モジュールがインストールされていないため、構成されている URL ReWrite 設定を実行できず、500 エラーが返されます。

Azure VM への RDP アクセスを有効にして、アプリケーション イベント ログに記録された可能性のある例外をリモートで検索できるようにしましたか? Azure VM に RDP を実行し、アプリケーション イベント ログを探すと、URL 書き換えモジュールが利用できないことを説明するエラーが表示されます。

最初に、Azure に URLRewrite モジュールをインストールするための開始タスクを作成する必要があります。Windows Azure スタートアップ タスクの詳細については、このリンクにアクセスしてください。

これは、Windows Azure で URL 書き換えを有効にする方法に関するリンクです。(これがあなたのエラーである場合は、URLRewrite を Windows Azure で動作させる方法に関する詳細情報を書くことができます)

于 2012-06-10T17:57:07.650 に答える
0

ubuntu の Apache を Azure Web サイトの IIS に移動しただけです。下記URLによると、rewriteモジュールは既に有効になっているようです。また、Web Platform Installer を使用して、Windows 7 で同様の環境 (IIS Express 7.5) をセットアップします。web.config も完全に機能します。

「...URL 書き換えモジュールは常に有効であり、クラウドで利用できます。ただし、ローカルの開発環境から使用するには、インストールする必要があります...」

http://msdn.microsoft.com/en-us/library/windowsazure/dd573358.aspx

あなたのweb.configは私のものと非常によく似ています-urlのindex.phpを削除します。

エラー メッセージを有効にして、問題を特定するのに役立つ IIS から詳細を出力してください。このトリックを使用して、IIS がファイルをどのように検索するかを調べます。、 、および以下のセクションです。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <system.webServer>

        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>

        <rewrite>
        <rules>
            <rule name="RuleRemoveIndex" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true"/>
            </rule>
        </rules>
        </rewrite>

    </system.webServer>

    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>

</configuration>

また、config.php の base_url が正しいことを忘れずに確認してください。

それが役に立てば幸いです!

于 2012-10-30T09:30:57.163 に答える