1

Apache 2.2 をインストールしました。Firefox で 127.0.0.1 または 192.168.1.7 を使用して、ローカル Web ページをロードできます。(読み込み中の Web ページはハード ドライブに保存されています。) VBScript でこれらのアドレスにアクセスしようとすると、機能しません。VBScript を使用して Web にアクセスすると、ドメイン名に IP アドレスを使用する場合を含め、正常に動作します。

ローカルで提供されるファイルでは機能しないが、インターネット上の同一のファイルでは機能する VBScript を次に示します。(127.0.0.1 または 192.168.1.7 を使用すると、「エラー」がファイルに書き込まれます) このスクリプトは、Web ページ上のすべての URL をテキスト ファイルに書き込みます。

Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)

'  The Chilkat Spider component/library is free.
set spider = CreateObject("Chilkat.Spider")

spider.Initialize "http://192.168.1.7/index.htm"
spider.AddUnspidered "http://192.168.1.7/index.htm"

success = spider.CrawlNext()

if success then 

For i = 0 To spider.NumOutboundLinks - 1
    outFile.WriteLine(spider.GetOutboundLink(i))
Next

else
    outFile.WriteLine("Error.")
end if 

以下はApacheのアクセスログです。

Apache's log, running the VBScript (http://192.168.1.7/index.htm)
... GET /robots.txt HTTP/1.1" 404 208
... GET /index.htm HTTP/1.1" 200 365184
... GET /index.htm HTTP/1.1" 200 365184
Apache's log, loading the same from Firefox
... GET /index.htm HTTP/1.1" 200 365184
... GET /index_files/rsAItRhddGWakWTu2xcFYn5VJXiw_002.txt HTTP/1.1" 200 533363
... (additional accesses, with 200 and then different numbers)

このログに関して、ローカルに保存されたファイルは Google の検索結果ページです。(テスト用です。Google では使用しません。) VBScript はライブ インターネット バージョンで実行されますが、ローカルで提供されるコピーは実行されません。Firefox はローカルに提供されたファイルをロードし、実際のファイルと同じように見えます。

ファイアウォールがオフになっています。アパッチ 2.2; Windows XP SP3

4

1 に答える 1

0

User Agent による Apache 500 エラーへの応答で答えが見つかると思いますか? . 基本的に、Apache は UserAgent 文字列が空のリクエストを無視するように設定されています。応答は、関連するUserAgent/.htaccess の質問を参照しています。

.htaccess を使用して Web サイトから不要なボットをブロックする方法も参照してください。

于 2013-04-13T07:58:24.973 に答える