1

IIS 7 URL 書き換えモジュール 2 を使用して、.htaccess ファイルを web.config に変換しました。

私のApacheサーバーで.htaccessを使用すると、すべて正常に動作します。しかし、IIS 7 サーバーで web.config を使用すると、すべてがうまくいきません。

addcharacter.php、deletecharacter.php、editcharacter.php の 3 つの管理ページがあります。

コードは次のとおりです。

    <li><a href='admin/addcharacter' title='Add Character'>Add Character</a></li>
    <li><a href='admin/deletecharacter' title='Delete Character'>Delete Character</a></li>
    <li><a href='admin/editcharacter' title='Edit Character'>Edit Character</a></li>

問題がどこにあるのかは、最初のリンクに移動したときです。

www.mywebsite/admin/addcharacter -- 初回は正常に動作します

別のリンクに切り替えると(リンクが何であれ)、管理者が再度追加されます

www.mywebsite/admin/admin/destination ページ

それが唯一の違いなので、web.configファイルに関連していると思います。

ここに私の設定ファイルの一部があります:

   <rule name="Imported Rule 9">
                    <match url="^logout$" ignoreCase="false" />
                    <action type="Rewrite" url="logout.php" />
                </rule>
                <rule name="Imported Rule 10">
                    <match url="^admin$" ignoreCase="false" />
                    <action type="Rewrite" url="admin.php" />
                </rule>
                <rule name="Imported Rule 11">
                    <match url="^admin/([A-z][a-z]+)/?$" ignoreCase="false" />
                    <action type="Rewrite" url="admin.php?action={R:1}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>

何か案は?

4

1 に答える 1

2

問題は書き換えルールではなく、リンクにあると思います。相対リンクではなく、絶対リンクを使用する必要があります。オンwww.mywebsite/admin/addcharacterの状態でリンクをクリックするとadmin/anotherpage、ブラウザは へのリクエストを送信しwww.mywebsite/admin/admin/anotherpageます。これが相対リンクのしくみであり、サーバーがそれについてできることは何もありません。ただし、Apache サーバーでも同じ問題が発生するはずです。

したがって、リンクは次のようになります。

<li><a href='/admin/addcharacter' title='Add Character'>Add Character</a></li>
<li><a href='/admin/deletecharacter' title='Delete Character'>Delete Character</a></li>
<li><a href='/admin/editcharacter' title='Edit Character'>Edit Character</a></li>
于 2012-12-19T11:46:00.820 に答える