2016-03-23 4 views
0

私はvbscriptを使って古典的なASPを持つサイトを持っています。ユーザーが自分のサイトの特定のディレクトリから来ているかどうかを確認するにはどうすればよいですか?私はこのコードを持っていますasp classicでワイルドカード文字を使用できますか?

<%Response.Write(Request.ServerVariables("http_referer"))%> 

書き込み:http://example.com/mobile/REFER.asp。私は参照uriがディレクトリhttp://example.com/mobile/にあるかどうか最初にチェックするif/else文を書こうと思います。

私のコードは以下のようになります。しかし、構文についてはわかりません。ワイルドカード文字がASPなのではないですか?

<% Request.ServerVariables("http_referer") == "http://example.com/mobile/*" 

結局私がもし/ else文を書くためにそれを使用したい

<% if Request.ServerVariables("http_referer") != "http://example.com/mobile/*" then 
null; elseif (screen.width <= 699) { 
    document.location = "/mobile/mobile_home.asp"; 
    } %> 

働くこれに編集する@ mikeyq6のJavaScriptサンプルを終わっ===

<script type="text/javascript"> 
if(document.referrer.indexOf('/mobile') > -1 && 
    screen.width <= 699) { 
    document.location = "/mobile/mobile_home.asp"; 
} 
</script> 
+0

ベア、ハードコーディングされたURLのISN」を使用する任意のアプローチ特にメンテナンスの観点から最良のアイデアです。これを行う必要がある場合は、[Application](https://msdn.microsoft.com/en-us/library/ms525360(v = versus90).aspx)オブジェクトレベルあなたは 'global.asa'の中で一度定義し、必要なときに呼び出すことができます。 – Lankymart

答えて

0

あなたが扱っているのは文字列なので、このようにワイルドカードを使用することはできません。

InStr関数を使用して、値に文字列が含まれているかどうかを確認するほうがはるかに簡単です(正規表現を使用する場合は、この例では釘を打つのと同じです)。例:ここInStr

<% if InStr(Request.ServerVariables("http_referer"), "http://example.com/mobile/") = 0 then 
    null 
elseif (screen.width <= 699) { 
    document.location = "/mobile/mobile_home.asp"; 
} %> 

さらに詳しい情報: http://www.w3schools.com/asp/func_instr.asp

あなたにもJavaScriptで似たような操作を行うことができます。私もif...elseを簡素化

if(window.location.href.indexOf("http://example.com/mobile/") > -1 && 
    screen.width <= 699) { 

    document.location = "/mobile/mobile_home.asp"; 
} 

注意してください。どちらの場合も必要ありません。

+0

だから明らかに私は両方のASPとJavaScriptを混在させた。 InStr(Request.ServerVariables( "http_referer"))に対応するjavascriptはありますか? – testing123

+0

@ user5753132私は答えの一番下にjavascriptの例を追加しました – mikeyq6

0

あなたはこれだけ見るあなたが探している固定URLの長さを知っているかのリファラの試合の最初のn文字それ:心の中で

const BASE_DIR = "http://example.com/mobile/" 

dim referer: referer = lcase(Request.ServerVariables("http_referer")) 

if left(referer, len(BASE_DIR)) = BASE_DIR then 
    ... 
else 
    ... 
end if 
関連する問題