机器上同时架着Apache和IIS,都配置使用404方法来实现WordPress永久链接,之前按IIS来设置的404.php代码在Apache下无效,于是查了一下。
检查的方法很简单,在404.php页面顶部加入以下代码即可。<?php print_r($_SERVER); die(); ?>
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给出的地方是不一样的。看上述测试结果便知怎么用了,不多赘述。
搞定! :-)
本博客所有文章如无特别注明均为原创。