iis7+php5.6配置404错误页面的问题
打开错误页,如图1
图1
1.刚开始选择的是“在此网站上执行URL”,/404.html页面可以显示出来,但返回的状态是200,对seo不友好,这样生成的的web.config配置文件如下:
<httpErrors errorMode="Custom"> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="500" prefixLanguageFilePath="" path="/errors/page_500.php" responseMode="ExecuteURL" /> <error statusCode="404" path="/404.html" responseMode="ExecuteURL" /></httpErrors>
网上搜索了一下,发现要想出现404还得选第一项,即"将静态文件中的内容插入错误响应中",但404文件不用指定路径,默认为根路径,直接写404.html即可,不用写成/404.html
改为
<httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File"> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" /> <error statusCode="500" prefixLanguageFilePath="" path="/errors/page_500.php" responseMode="ExecuteURL" /> <error statusCode="404" path="404.html" /></httpErrors>
2.当找不到.html文件时可跳转,但当.php文件时提示“No input file specified.”错误,网上有的说是php.ini里的doc_root,有的说是修改cgi.force_redirect = 0,经过测试均不管用,最终在http://stackoverflow.com/questions/12387791/no-input-file-specified-php-error-under-iis上找到解决方案,即修改“处理程序映射”/选择php fastcgi“/点"编辑"/点“请求限制”/勾上"仅当请求映射至以下内容时才调用处理程序"/选“文件或文件夹”,确定后会弹出提示“要为此可执行文件创建FastCGI应用程序吗?”,选“否”即可,不用重启iis。
如图2:
图2