は、このためにWebブラウザを使用しないでください。
PowerShellのinvoke-webrequest
コマンドレットを使用してください。
$redirecttest = invoke-webrequest -uri https://jigsaw.w3.org/HTTP/300/302.html -Method get -maximumredirection 0;
Write-Output "StatusCode: $($redirecttest.statuscode)";
Write-Output "Redirecting to: $($redirecttest.headers.location)";
これは、指定されたURLのページに到達しようとし、指定されている場合はリダイレクトに従いません。次に、HTTPヘッダーを取得し、HTTPステータスコード(302
、この場合は永続的に移動されます)とリダイレクト先の場所を出力します。
サーバーは、クライアントがリダイレクトするように指示された回数を超えてリダイレクトするようクライアントに指示したため、エラーも発生します。あなたが好む/必要とするエラーを処理します。
if ($Redirecttest.headers.location -eq "http://site2.school.net" -or $Redirecttest.headers.location -eq "http://site3.school.net") {
Write-output "Success";
} else {
Write-output "Redirect broken";
}
をそれとも、あなただけのWebリクエストを起動し、リダイレクトを許可し、そして得られたを調べることができます:
その後、リダイレクトが正しく動作していることを検証するためにあなたが送信されているリダイレクト先をテストすることができますURL。
$redirecttest = invoke-webrequest -uri https://jigsaw.w3.org/HTTP/300/302.html -Method get;
$redirecttest.BaseResponse.responseuri.AbsoluteUri;
クライアント側に依存するとは対照的に、HTTPサーバは、真HTTP 30X
status codesを送信する場合にのみ動作することに注意がMETA
タグやJavaScript経由でリダイレクトします。
このメソッドはまた、私のために働いたが、私は笑を必要とさえ知っていなかった解決策を私に提供した。ありがとう! – WookieWitDaFur