来自专用服务器的HTTPS网站wget

时间:2015-09-06 20:46:07

标签: curl https search-engine wget

我最近从HTTP网站迁移到了HTTPS。为了使用mnogosearch搜索引擎索引本网站的所有页面,我需要执行一个包含在mnogosearch中的脚本,名为" indexer"它实际上获取了webite的所有页面并将它们编入MySQL表。

这个"索引器"必须从托管HTTP服务器的计算机调用脚本,即从虚拟专用服务器(VPS)调用脚本。

此脚本与我的网站的HTTP版本配合得很好,但我遇到了HTTPS索引的问题。

的确,为了能够为HTTPS页面编制索引,我使用此链接中的"virtual scheme as an external retrieval system":[http://www.mnogosearch.org/doc/msearch-extended-indexing.html][1]

它允许使用外部程序来获取HTTPS页面的内容。

它可以将外部程序放入名为"curl.sh"的脚本中:

#!/bin/sh
wget -r --no-check-certificate $1

问题是这个" wget -r --no-check-certificate https://example.com/"命令适用于我的本地计算机(它下载我的网站的所有页面" example.com")但是当我直接从托管我的HTTPS服务器的VPS启动它时它不起作用(例如.COM)。

在第二种情况下,它只下载index.html。

这是我在托管机器上进行递归wget时得到的结果:

$ wget -r --no-check-certificate https://example.com/
--2015-09-06 22:22:12--  https://example.com/
Résolution de example.com (example.com)... 
Connexion vers example.com (example.com)...connecté.
Le propriétaire du certificat ne concorde pas avec le nom de l'hôte «example.com»
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 177 [text/html]a
Sauvegarde en : «example.com/index.html»

100%[========================================================================================================================================>] 177         --.-K/s   ds 0s      

2015-09-06 22:22:12 (5,08 MB/s) - «example.com/index.html» sauvegardé [177/177]

FINISHED --2015-09-06 22:22:12--
Total wall clock time: 0,5s
Downloaded: 1 files, 177 in 0s (5,08 MB/s)

并且index.html无效,此处的内容为:

<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>

我告诉你我的HTTPS服务器可以通过8443端口访问(我做了一个重写规则,将HTTPS 443请求重定向到8443端口)。

所以我也试过了:

wget -r --no-check-certificate https://example.com:8443/

在这种情况下,wget尝试显然是为了获取所有页面,但每页都有404错误:

$ wget -r --no-check-certificate https://example.com:8443/
--2015-09-06 22:39:03--  https://example.com:8443/
Résolution de example.com (example.com)... 
Connexion vers example.com (example.com)||:8443...connecté.
requête HTTP transmise, en attente de la réponse...303 See Other
Emplacement: index.html [suivant]
--2015-09-06 22:39:04--  https://example.com:8443/index.html
Réutilisation de la connexion existante vers example.com:8443.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 7389 (7,2K) [text/html]
Sauvegarde en : «example.com:8443/index.html»

100%[========================================================================================================================================>] 7 389       --.-K/s   ds 0s      

2015-09-06 22:39:04 (145 MB/s) - «example.com:8443/index.html» sauvegardé [7389/7389]

Chargement de robots.txt; svp ignorer les erreurs.
--2015-09-06 22:39:04--  https://example.com:8443/robots.txt
Réutilisation de la connexion existante vers example.com:8443.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 138 [text/plain]
Sauvegarde en : «example.com:8443/robots.txt»

100%[========================================================================================================================================>] 138         --.-K/s

更新:我忘了说我在Apache后面有一个Twisted python服务器,这个Twisted服务器正在端口8443上监听,这就是为什么我从443重定向到8443端口

1 个答案:

答案 0 :(得分:1)

如果您有权访问服务器,最简单的解决方案可能是更改Apache配置,以便端口443转到与端口8443相同的主机/虚拟主机。然后,如果您尝试下载https://example.com/服务器再次使用https://example.com/的所有绝对链接也可以正常工作,您将能够通过普通端口下载所有内容。

接下来,我想你可能想要删除-r标志并将-S -O -添加到你的wget命令行,。看起来您正在使用的软件期望服务器响应的标题和正文在控制台上输出,而不是保存到文件中。