wordpress使用永久链接(PermaLink)时download monitor的问题

wordpress download monitor 一个非常不错的下载管理插件。给朋友用wordpress做的一个网站就用了这个插件。

可以自己制作一个下载页面,在wordpress里新建页面,内容只要输入[download_page],那么新建的页面就是下载页面。比如我给这个页面的post_name起的是xiazai,它的pageid是27,那么domain.com/?page_id=27就是下载页面的地址.

但是在使用过程中遇到了两个问题:

1.wordpress不使用永久链接(PermaLink)
访问domain.com/?page_id=27,看到里面下载的连接都是domain.com/page_id=27&did=8,结果无法访问。正确的地址应该是domain.com/?page_id=27&did=8
修改方法:
在wp-content/plugins/download-monitor/page-addon/download-monitor-page-addon.php中找到一行代码:

return $querystring[0].$querystring[1].$add;

修改为:

return $querystring[0].'?'.$querystring[1].$add;

2.wordpress使用永久链接(PermaLink)
如果wordpress使用永久链接,下载页面就是domain.com/xiazai。那么上面1的位置不要修改,要不然就多了一个"?"变成domain.com/xiazai/??did=8

现在下载页面里面的连接就变成了domain.com/xiazai/?did=8,点击之后还是回到本页面,不会进入到下载页面,很烦人。

修改的办法就是添加两条rewrite规则,比如在iis rewrite的http.ini里面或者.htaccess文件里面添加

RewriteRule ^/xiazai/\?did=([0-9]+)$ /\?page_id=27&did\=$1 [L]
RewriteRule ^/xiazai/\?category=(.+)$ /\?page_id=27&category\=$1 [L]

本人用的iis rewrite,所以不知道linux里面的wordpress是否会出现第二种问题。

8 条评论

渴慕晨光

@zuotui
iis要使用使用rewrite功能一般都用isapi rewrite。
isapi rewrite 2的配置文件是http.ini
isapi rewrite 3的配置文件是http.conf
当然这都是在服务器上,如果你无法接触到服务器,或者你用的是虚拟主机,但是支持rewrite(iis要使用使用rewrite功能一般都用isapi rewrite),你可是找虚拟主机提供商或者服务器管理人员,给你添加那两条rewrite规则。
如果是服务器的web程序用的apache,那就是在网站目录的.htaccess里面加上就行。

回复
Hpyer

昨天试过了,可以把wp_dlmp_append_url函数修改成下面的代码,问题就能解决了。
已经反馈给原作者了,希望下个版本可以修正这个问题。

function wp_dlmp_append_url( $append ) {
global $post;
$querystring = explode('?', get_permalink( $post->ID ));
$add = '?';
if ($querystring[1]) {
$add .= $querystring[1].'&';
}
$add .= $append;
return $querystring[0].$add;
}

回复
Hpyer

OK,我明白你说的意思了~~确实这个问题有点头疼~~
不过,你最后提供的办法似乎不太具有共同性,就是给别的朋友用的话,还得改代码,虽然改的不多,不过还是有点麻烦~~

回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

😉😐😡😈🙂😯🙁🙄😛😳😮:mrgreen:😆💡😀👿😥😎😕