404.php下载,支持Download Monitor插件的404.php

由于WordPress Download Monitor插件用到了URL重写性能,具体可在后台管理界面下载管理的自定义下载地址中有说明。这里只说明404.php页面的编码思路,具体使用方法可参考《WordPress永久链接在IIS下的实现》。关于Download Monitor插件的使用可参考《WordPress Download Monitor插件使用说明》。

如果启用了Download Monitor插件的下载页面(如本站的下载界面),那么下载页面中的下载项地址格式为下载页面的网址后加上?did=n(n为下载编号,数字),如本站下载页面中WordPress Download Monitor插件的地址是http://witmax.cn/downloads?did=4。

如果设置了自定义下载地址,那么在文章中下载项的链接地址将表示为自定义格式,如本站自定义下载地址为http://witmax.cn/downloads/ID。那么WordPress Download Monitor插件对应的下载地址便是http://witmax.cn/downloads/4。

以上说明了两种下载地址格式,而上面的地址皆是虚假路径,即站点上其实不存在downloads文件夹。因而便要针对以上两种类型的地址进行处理,转化为真实下载地址wp-content/plugins/wp-download_monitor/download.php?id=n(n为下载编号,数字)。同时由于整个博客文章同样适用了URL重写性能,其他不存在的链接要重定向到index.php。

404.php的代码如下:<?php

$uri = $_SERVER['REQUEST_URI'];

$uri = preg_replace("/.*404;http:\/\/[^\/]+/", "", $uri);

$_SERVER['REQUEST_URI'] = $uri;

$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];

// 解决重定向的页面中的页面导航问题

$_SERVER['SCRIPT_NAME'] = $_SERVER['PATH_INFO'];

$_SERVER['QUERY_STRING'] = "";

// 处理页面GET参数

$pos = strpos($uri, "?");

if ($pos !== false && $pos + 1 != strlen($uri)){

$arr = split("&", substr($uri, $pos + 1));

foreach($arr as $value){

$pair = split("=", $value);

if (count($pair) == 2)

$_GET[$pair[0]] = $pair[1];

}

}

// 引入处理程序

// 根据你的自定义下载地址修改下面这句引号中的正则表达式

if (preg_match("/\/downloads\/(\d+)$/", $uri, $matches)){

$_GET['id'] = $matches[1];

include('wp-content/plugins/download-monitor/download.php');

}

else{

include('index.php');

}

?>

如果你的下载项自定义下载地址不是/downloads/ID,那么需要根据你的设置修改一下上面的404.php,具体位置在代码注释中说明。

2009年11月28日更新,修复download monitor插件内容页显示内带GET参数无效的问题。

2010年2月9日更新,重写代码,简化逻辑,修复download monitor页面下载项点击后无反应的bug

本博客所有文章如无特别注明均为原创。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值