利用wayback-machine-downloader(Ruby版)下载的网站,上传到自己的服务器上之后,发现部分google收录的链接无法访问,于是着手解决这个问题。
一、下载缺失的文件
直接使用官方的下载单个网页的命令
wayback_machine_downloader http://example.com --exact-url
发现下载下来的文件是这样的:
我以为只有下载单个文件是这样的,后来一看原来下载的网站文件,发现许多文件都是这样的,将原来的网页文件下载成一个文件夹,里面有一个index.html文件,不过有的文件又是直接存为php文件的,不过只占一小部分。
我试着访问http://www.xx.com/bookstore-hours.php/index.html这个文件,不过却出现“access denied.”的提示,看网上说是未开启pathinfo函数导致的。
二、开启pathinfo函数
我按照LNMP官方的方法,开启pathinfo函数。
首先找到对应虚拟主机的配置文件(/usr/local/nginx/conf/vhost/域名.conf),然后将include enable-php.conf;替换为include enable-php-pathinfo.conf,再重启nginx。
可是还是无法访问http://www.xx.com/bookstore-hours.php/index.html这样的网页。
三、重新添加虚拟主机
我记得当时添加虚拟主机的时候,有询问是否开启pathinfo的选项,于是尝试重新添加虚拟主机。
我将原来的虚拟主机删除,不过在执行删除命令的时候,出现如下的错误提示:
cannot remove .user.ini
原来是文件权限已经被锁定,需要先解除锁定。3
chattr -i /home/wwwroot/你的网站目录/.user.ini
这时再使用rm命令删除网站目录,就成功删除了。
再次添加虚拟主机,成功开启了pathinfo,可是还是无法访问http://www.xx.com/bookstore-hours.php/index.html这样的网页。
四、终极解决方案
没办法,到了上一步暂时想不到更好的解决方法,先用镜像程序试试吧。
上传镜像程序到西数的虚拟主机,镜像成功,非常成功。于是就将原来网站目录中从archive下载的所有文件删除,上传镜像程序,然后访问时却又报“mkdir Failed!”的错误。
没办法,只好又用回西数的空间,但又需要将域名解析到西数的空间,然后又登陆自己以前购买域名的网站,找到相关的域名,点“管理”,然后发现解析页面打不开!!!
WTF!
后来联系客服,大概等了十来分钟吧,终于可以解析了。