0

PHPアプリケーションをApacheからIIS7に移行しました。すべてのリンクは、パスディレクトリを含むMySQLテーブルレコードからロードされます。PHPコードとMySQLデータベースで同じ構造を持っています。ただし、リンクをクリックしてもPHPコードは実行されず、ホームページでのみ機能します。次のエラーが発生します。

HTTPエラー404.0-見つかりません
探しているリソースが削除されたか、名前が変更されたか、一時的に利用できません。

これはIIS構成の問題ですか?

これはホームページ用です:

<ul>                  
<?php
echo $class->menu->topmenu( $patharray[0] ) ?>                                        
</ul>

以下はリンク用です:

function topmenu ( $path = 'home' )
    {
        $home = $this->fetchOne ( $this->query( "SELECT * FROM admin_menu WHERE parent = 0" ) ) ;
        $links = $this->fetch ( $this->query ( "SELECT admin_menu.*, aus.value FROM admin_menu LEFT JOIN admin_user_status aus ON ( aus.id = admin_menu.status ) WHERE parent = 1 AND active ='yes'  ORDER BY sort ASC" ) ) ;

        if ( $links )
            foreach ( $links as $key => $link )
            {

                if ( $key == 0)
                    $url = '/';


                else 
                    $url = $link->url;

                //if ( $link->priv == 'open' || ( $link->priv == 'private' && $this->userinfo->status == 225 ) )
                if( $this->check_user_priv( $link ) )
                {
                    if( stripos( $link->url, $path ) === false )
                        $result .= "<li class='mainlevel'><a href='$url'  >$link->text</a></li>" ;
                    else 
                        $result .= "<li class='mainlevel'><b><a href='$url'  >$link->text</a></b></li>" ;
                }


            }


return $result; 
}

上記のURLリンクはテーブルから読み込まれますが、それらをクリックすると、HTTPエラー404.0-見つかりませんでした。

4

1 に答える 1

1

IIS 7 の URL 書き換えモジュールに Apache mod_rewrite ルールをインポートすることで問題を解決しました。Apache からの移行には、web.config 用に変換する必要がある .htaccess ルールがありました。これが他の誰かに役立つことを願っています。

于 2012-10-25T19:46:28.773 に答える