2011-02-01 34 views
4

私は誰かがhttp://mywebsite.com/を使用して、その後URLがhttp://www.mywebsite.com/にリダイレクトされるかどうリダイレクトを適用したいリダイレクトURLリダイレクト

に関連する問題があります。私はそれが302のリダイレクトだと知っていますが、コーディングでそれをどのように適用するのかわかりません。どのようなVBScriptをリダイレクトに使うことができますか?

Response.Status = "302 Moved Temporary" 
Response.AddHeader "Location", "http://www.mywebsite.com/" 

答えて

12

使用Request.ServerVariables("HTTP_HOST")ホストを取得するには:

私のウェブサイトは、コードのどの部分が

おかげ

+0

RobVのこのコードを302リダイレクトと共に使用すると、私の答えで投稿したものが完全な解決策になります。 – Randam

+1

@Randam 'Response.Redirect()'は302を実行するので、ステータスコードとヘッダを手動で設定する必要はありません - http://msdn.microsoft.com/en-us/library/ms524309.aspxを参照してください – RobV

+0

溶液 – NewbieFreak

4

はこれを試してみてください私のために良いだろう...クラシックASPとVBScriptで構築されてあなたがそれがwww.で始まるかどうかを確認することができるようにします。

、それはあなたのために302をやるので、それは、単に適切なURLにResponse.Redirect()を発行しない場合は、次の

例えば

If Left(Request.ServerVariables("HTTP_HOST"), 4) <> "www." Then 
    Dim newUri 
    'Build the redirect URI by prepending http://www. to the actual HTTP_HOST 
    'and adding in the URL (i.e. the page the user requested) 
    newUri = "http://www." & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("URL") 

    'If there were any Querystring arguments pass them through as well 
    If Request.ServerVariables("QUERY_STRING") <> "" Then 
    newUri = newUri & "?" & Request.ServerVariables("QUERY_STRING") 
    End If 

    'Finally make the redirect 
    Response.Redirect(newUri) 
End If 

上記要求されたページを確保し、リダイレクトし、クエリ文字列が

+0

おかげで、これがまた問題 – NewbieFreak

+0

の正しい解決策であるが、この解決策を適用するために、@Robvが行ったようにいくつかのチェックが適用されるイマイチRandam保存されていないに...左の場合(Request.ServerVariables( "HTTP_HOST")、4)<> "www。"次にResponse.Status = "302 Moved Temporary" Response.AddHeader "Location"、 "http://www.mywebsite.com/"が終了し、@Robvコードでもクエリーストリングを保存することができます。 – NewbieFreak

+0

QueryStringは保持しているが、Path/ScriptNameは保持していないのでしょうか? –