【PHP】404错误页面获取源地址参数的一点不同
机器上同时架着Apache和IIS,都配置使用404方法来实现WordPress永久链接,之前按IIS来设置的404.php代码在Apache下无效,于是查了一下。
检查的方法很简单,在404.php页面顶部加入以下代码即可。
<?php print_r($_SERVER); die(); ?>
访问一个不存在的页面http://localhost/not-exist-page.html。
IIS下与源地址相关的$_SERVER参数为
// IIS Array ( [QUERY_STRING] => 404;http://localhost/not-exist-page.html [REQUEST_URI] => /404.php?404;http://localhost/not-exist-page.html [URL] => /404.php?404;http://localhost/not-exist-page.html )
Apache下与源地址相关的$_SERVER参数为
// Apache Array ( [QUERY_STRING] => [REQUEST_URI] => /not-exist-page.html [REDIRECT_URL] => /not-exist-page.html )
发现问题出在404页面跳转后源地址参数在IIS和Apache服务器下PHP给出的地方是不一样的。看上述测试结果便知怎么用了,不多赘述。
修改下原来的代码,见《WordPress永久链接在IIS下的实现》(已更新)。
搞定! :-)
还没有人抢沙发呢~