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

我通过将 Apache mod_rewrite 规则导入 IIS 7 中的 URL 重写模块解决了我的问题。我从 Apache 的迁移具有需要为 web.config 转换的 .htaccess 规则。我希望这对其他人有帮助。

于 2012-10-25T19:46:28.773 回答