301重定向带变量的URL

时间:2011-06-15 09:18:45

标签: asp-classic http-redirect

在我无法使用Web.Config的情况下,我正在对旧URL进行301重定向,因此没有重写模块功能。所以我一直在单个文件上使用这个简单的代码:

<%@Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader ( "Location","newurl.html" )
%>

我的问题是有一个页面(index.asp),其中变量通过URL传递,如下所示:

domain.com/index.asp?PageAction=VIEWPROD&ProdID=71 domain.com/index.asp?PageAction=VIEWPROD&ProdID=72

我想设置条件301重定向,以便当URL为ProdID = 71时,它为301s到一个特定页面,当URL为ProdID = 72时,它为301到不同的页面。

到目前为止,我有这个简单的代码:

<%
DIM strPageAction
strPageAction = Request.QueryString("PageAction")

DIM strProdID
strProdID = Request.QueryString("ProdID")
%>

<%
IF strPageAction = "VIEWPROD" AND strProdID = "71" THEN
ELSE
END IF
%>

<%
IF strPageAction = "VIEWPROD" AND strProdID = "72" THEN
ELSE
END IF
%>        

有没有人知道如何在“THEN”状态下获得301重定向?我对此非常陌生,所以也许我错过了一个简单的解决方案......

“Response.Redirect”有效但却提供了302而不是301.“Response.RedirectPermanent”的新选项对我的托管不起作用。

1 个答案:

答案 0 :(得分:1)

好吧,我找到了一些代码来完成这项工作:

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"

if Request.QueryString("PageAction") = "VIEWPROD" and Request.QueryString("ProdID") = "71" then
Response.AddHeader "Location", "http://www.foxnews.com" 

else if Request.QueryString("PageAction") = "VIEWPROD" and Request.QueryString("ProdID") = "72" then
Response.AddHeader "Location", "http://www.apple.com"

end if
end if
%>