Discuz! 5 6 7 隐藏远程附件的真实地址的方法
思爱 | 2009年11月17日
远程附件其实是个很不错的功能,利用单独服务器的空间和流量,节省主论坛的资源,加快论坛速度提高稳定性。
不过,目前有个不小的缺憾:如果隐藏远程附件的真实地址,就没法充分利用附件服务器的带宽,还会加大主论坛的流量,加重主论坛的负担。如果不隐藏真实地址,下载附件后,文件名又都会变乱码。
单个文件还好说,处理分卷压缩的文件就要累死了。
从5.5、6.0、6.1一直到目前的7.0,官方论坛也一直没有解决这个问题。不过现在终于可以解决了,现在免费提供给大家使用。使用方法如下:
把附件中的down.php复制到远程附件目录下。比如,远程附件设置的路径是http://remotehost/remoteattach/,就要把down.php放在远程附件服务器的remoteattach目录下。
2、修改论坛中的bbs/attachment.php文件。
找到如下内容(DZ6.0第152行,DZ6.1第133行,在DZ7.0版本中,第139行):
dheader(‘location:’.$ftp['attachurl'].’/’.$attach['attachment']);
将该行内容修改为下面四行(修改前请自行备份原来的文件/修改时请直接复制粘贴,不要手工输入
if($isimage && !empty($noupdate))
dheader(‘location:’.$ftp['attachurl'].’/’.$attach['attachment']);
else
dheader(‘location:’.$ftp['attachurl'].’/down.php?name=’.urlencode($attach['filename']).’&host=’.$attach['attachment']);
需要注意的地方:
1、如果需要远程附件支持断点续传和多线程下载,请把down.php中的”$readmod = 2″改为”$readmod = 4″;
2、论坛的附件设置里面,附件保存方式不可以选择: 标准(全部存入同一目录);
3、远程附件目录不要放置可以运行的程序,否则程序脚本可能会被非法读取。
下载:
远程附件_PHP