2013-04-30 98 views
0
相應的頁面

我創建了一個html的維修檔案,我想,當有人訪問該網站重定向到維護文件夾/ index.html的傳統的ASP的Response.Redirect到

我的代碼:在(的default.asp根)

<% 
    If InStr(UCase(Request.ServerVariables("SERVER_NAME")), UCase("abc.com")) > 0 Then 
     Response.Redirect("/maintenance/")  
    ElseIf InStr(UCase(Request.ServerVariables("SERVER_NAME")), UCase("web.com")) > 0 Then 
     Response.Redirect("/web/") 
    End If 

%> 

它工作正常,如果我去abc.com,但如果我輸入abc.com/blog它進入博客頁面。我如何防止它不會進入任何子文件夾。

+0

您是否使用DNN?不知道爲什麼它被標記爲 – 2013-04-30 15:22:10

+0

是的,需要這個爲DNN和我的常規asp網站工作,認爲這將是相同的邏輯,謝謝 – Ben 2013-04-30 15:42:30

+0

你可以簡單地使用app_offline方法嗎?或者你是否還想讓管理員訪問該網站 – 2013-04-30 16:24:03

回答

0

也許使用Request.ServerVariables["HTTP_HOST"]可以解決你的問題。

您是否試圖用變量Request.ServerVariables("SERVER_NAME")查看Response.Write以瞭解爲什麼字符串檢查失敗?

+0

當我嘗試做Response.Write而不是重定向爲abc.com時,它顯示正確的域名,但是當我爲abc.com/blog執行時,它由於某種原因跳過了default.asp文件。不知道爲什麼它不執行default.asp – Ben 2013-04-30 07:29:44

+0

啊,好的。我誤解了你的問題。 它沒有被重定向,因爲你的default.asp根本沒有被執行。 – misleadingTitle 2013-04-30 07:34:48

+0

我的理解是否正確,如果我說你想讓整個網站無法訪問(就像是「正在進行的工作」頁面)? – misleadingTitle 2013-04-30 07:38:02

0

你使用這個「測試>做」的方法,而不是僅僅採取現場下來,因爲創建一個定製的404.html頁: (1)網站獲得通過各種域名調用,並且要了一些工作,但不是別人;或者 (2)你剛剛沒有想到使用404方法?

無論如何,如果你想通過代碼來執行它,然後把這個在最頂部的頁面(標題,很重要的前),甚至以此作爲你的index.asp或Default.asp的頁面:

<% 
s_url = Request.ServerVariables("server_name") 
s_url = lcase(s_url) 
b_found = InStr(1,s_url, "abc.com",1) 
if (b_found <> 0) then 
    response.redirect("/maintenance/") 
end if 
%> 
+0

這是正確的,我的網站有其他域指向其他文件夾,(我更新了我的問題代碼,使其更清楚),基本上有一個網站指向維護文件夾而不接觸其他網站,我是否需要將此代碼放在每個文件夾中? – Ben 2013-05-01 03:40:34

+0

不需要。此代碼只需要放在default.asp或index.asp文件中,無論哪個人告訴IIS您是默認的起始頁面。如果您只想隔離abc.com,則此代碼有效。但是如果你想檢查其他人,並且他們都去同一個地方,那麼你應該創建一個你想要重定向到/ maintenance /文件夾的所有域的數組,然後使用InStr函數檢查s_url對該數組。 – ScotterMonkey 2013-05-01 15:38:39