2017-11-19 6 views
2

数ヶ月前、私は、私のクラシックASPアプリケーションのいくつかが奇妙な方法でリダイレクトしていることに気付きました。以前にファイルが(ユーザーがログインしたと仮定すると - クッキーを使用して)default.asppage.aspからリダイレクトうとして 、今、 もちろん404エラーがスローされますdomain.com/page.asp,default.asp のように見えるがリダイレクト、その「ページ」(ページので。 asp、default.asp)が存在しません。IISの新しいリダイレクトフォーマット

通常、リダイレクトはResponse.Redirectを使用して行われます。

また、HTTPSがオンでない場合、追加のリダイレクトがあり、同じページに転送されますが、HTTPSであるかどうかを確認するテストがあります。

このリダイレクト形式を変更しないようにする必要がある新しい設定ですか。

おかげ

UPDATES:

を(1)これは、私たちは、有効なクッキーを持っていることを確認するために、要求されたページ上で使用していますコードです:

if currentUserID = 0 then 
    conn.close 
    set conn = nothing 
    response.Redirect("default.asp") 
end if 

(2)私はlocalhost経由でチェックしましたが、Vanquished Wombatが提案しています。リダイレクトが起こらないようです。たぶん、SSLはそうではないから?

(3)のスクリーンショットを追加:を( '要求されたURL' の行を参照)

enter image description here

+1

リダイレクトが機能していない場合、従来のASPコードで何かが変更されているか、設定のIIS UrlReWritingルールが問題を引き起こしている場合は、「新しい形式」はありません。ルールを無効にして、リダイレクトをテストします。 – Lankymart

+0

この形式の 'domain.com/default.asp、page.asp'はあなたに何か鐘を鳴らしますか? – kneidels

+0

@Lankymart - OPのサーバーにIIS url-rewriteプラグインがインストールされている可能性が高いと思いますか?OPは認識されませんか? –

答えて

0

をモジュールを使用することができますSSLチャネルにユーザーを強制する方法が混乱する可能性があり、これが統計情報を混乱させる可能性があります。

IISとJavaScriptのカスタムエラーを使用して、ユーザーをHTTPからHTTPSに強制することができます。これは、IISがユーザーの要求を拒否して403.4カスタムエラーファイルを返送するため、IISがユーザーの要求を拒否し、同じ基本URLに戻されますが、HTTPSプロトコルに戻されるため、statカウンタの前に発生します。

ウェブサイトのルートフォルダに次のスクリプトをHTTPredirect.htmlとして保存し、3つの手順に従ってください。

<!-- beginning of HttpRedirect.htm file --> 
<!-- 
'----------------------------------------------------------------------- 
' To force user to https port. 
' 
' To make this work: 
' 1. Put this html file in root of website in a file named HTTPredirect.html. 
' 2. Go to IIS admin, click on the web site and open Error pages. 
' Set 403.4 error to static file with path = HTTPredirect.html 
' 3. Still in IIS admin go to SSL setting and tick 'Require SSL' checkbox. Click Apply. 
' Now it will work - redirecting all http urls to https. 
'---------------------------------------------------------------- 
' 
--> 
<script type="text/javascript"> 
function redirectToHttps() 
{ 
var httpURL = window.location.hostname + window.location.pathname; 
var httpsURL = "https://" + httpURL + window.location.hash; 
var restOfUrl = window.location.href.substr(5); 
window.location = "https:" + restOfUrl; 
} 
redirectToHttps(); 
</script> 
<!-- end of HttpRedirect.htm file --> 

また「ハイテク」を行って、全体の多くの機能を持っていますが、あなただけのHTTPSにユーザーを切り替える必要がある場合にはやり過ぎであるIIS URL書き換えをインストールすることができます。

これは有用でない場合はお知らせください。回答を削除します。

+0

ありがとう! 'SSLを要求する'オプションを有効にした後、 'http'でサイトをブラウズすると、'内部サーバエラーが発生したためページを表示できません 'というエラーが表示されました。また、IIS URLはJSよりも優れています溶液?何らかの理由で私はJSが完全なものではないかもしれないと感じているので、おそらくIISソリューションが優れていますか?また、thay googleがSSLとしてサイトを見ていることを確認したい – kneidels

+0

403.4エラーをHTMLファイルを指すように設定しましたか? –

+0

はい。 'C:\ Inetpub \ vhosts \ SITE.COM \ httpdocs \ HTTPredirect.html'にある、最初にチェックされたボックス"静的ファイルからコンテンツを挿入... "を使用してください。 「エラーを返そう...」チェックボックスがオフになっています – kneidels

関連する問題