Hello all. I've been trying to figure out a redirect system for a site that I'm updating from classic asp to asp.net. Currently, the site has some product search and product detail pages such as: prodList.asp?idCategory=9 or prodView.asp?idproduct=55 Well, what I want to do is create a 301 redirect from those pages to the new one, based on the idCategory parameter or the idproduct parameter. I found neat little 301 redirect code <%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", " http://www.new-url.com" > But I want to create a series of IF/Then statements that will redirect based on the uri parameter, and I'm not sure how to do it. In other words, my logic is - If WEBSITE uri = ../prodView.asp?idproduct=55 THEN Response.Status="301 Moved Permanently" Response.AddHeader "Location", "new-url(dot)com" I have to do this one line at a time because the Product ID's and the Category ID's will change with the new asp.net application. In any case, any ideas? I've never written code from scratch, that's why I stink at this. Thanks ahead of time.
Something like this... I personaly would use a DB to pull the new product page from if you can instead of hard coding it. <% varHost = Request.ServerVariables("HTTP_HOST") varPage = Request.ServerVariables("SCRIPT_NAME") varQuery = Request.ServerVariables("QUERY_STRING") If varHost = "yoursite.com" then Response.Status="301 Moved Permanently" If varPage = "/prodList.asp" then If varQuery = "idCategory=1" Response.AddHeader "Location", "new_location.asp" Elseif varQuery = "idCategory=2" Response.AddHeader "Location", "new_location.asp" Else Response.AddHeader "Location", "new_location.asp" End If Elseif varPage = "/prodView.asp" If varQuery = "idproduct=1" Response.AddHeader "Location", "new_location.asp" Elseif varQuery = "idproduct=2" Response.AddHeader "Location", "new_location.asp" Else Response.AddHeader "Location", "new_location.asp" End If Else Response.AddHeader "Location", "unknown_list.asp" End If End If %> Code (markup): Hope this helps
COOL BEANS!!! Thank you so much. You have no idea how many people I've asked. Seems everybody has forgotten asp. I would love to, but like I said in my post, can't code if my life depended on it. I can script scrape like a pro, putting bits and pieces together to make it do what I want it to do, but otherwise, bupkis. Does this work for all versions of the url? In other words, http://www and http:// and https:// ? This is the problem I've got, both www and non www AND https pages are currently listed. Thanks.
red is added code green is comments <% varHost = Request.ServerVariables("HTTP_HOST") varPage = Request.ServerVariables("SCRIPT_NAME") varQuery = Request.ServerVariables("QUERY_STRING") [COLOR="DarkGreen"]'i dont think this is needed, but if so you can if this... too.[/COLOR] [COLOR="Red"]varSecure = Request.ServerVariables("HTTPS")[/COLOR] If varHost = "yoursite.com"[COLOR="Red"] OR "www.yoursite.com"[/COLOR] then Response.Status="301 Moved Permanently" If varPage = "/prodList.asp" then If varQuery = "idCategory=1" Response.AddHeader "Location", "new_location.asp" Elseif varQuery = "idCategory=2" Response.AddHeader "Location", "new_location.asp" Else Response.AddHeader "Location", "new_location.asp" End If Elseif varPage = "/prodView.asp" If varQuery = "idproduct=1" Response.AddHeader "Location", "new_location.asp" Elseif varQuery = "idproduct=2" Response.AddHeader "Location", "new_location.asp" Else Response.AddHeader "Location", "new_location.asp" End If Else Response.AddHeader "Location", "unknown_list.asp" End If End If %> Code (markup): Secure pages should work as normal as the SCRIPT_NAME is the same in both cases, i added a check for WWW version as the old one didnt check.
Hi - First I am a noob at this, so please don't laugh at my question. Where would I insert this? on the header.asp file? I am going to try, but any help would be appreciated. Thank you,
HI all. i want to redirect with 301 for a different folder. the folder name is a variable and its different every time so what i get is somthing like that: Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://www.mySiteName.co.il/" MyFolderName that is not working for sure ! how can i join the folder name to the redirect statement? tnx!