954,566 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

ASP redirect

HELP.....our web server requires we use an ASP page to redirect our 20 URLs to subwebs. This I can deal with. However, we want clients to be able to go directly to a page within a site by typing in www.WillametteValleyCrane.com/payment and get redirected to the page in the web. The ASP only directs the URL. When the "/payment" is added the redirect does not work.

Can we adjust the script to make it redirect? Thanks!

<%EnableSessionState=False

host = Request.ServerVariables("HTTP_HOST")

if host = "willamettevalleycrane.com" or host = "www.willamettevalleycrane.com" then
response.redirect("http://www.willamettevalleycrane.com/wvc/index.html")

if host = "willamettevalleycrane/payment" or host = "www.willamettevalleycrane.com/payment" then
response.redirect("http://www.willamettevalleycrane.com/ylhl/payment/index.html")

end if
%>

dmah2007
Newbie Poster
1 post since Oct 2007
Reputation Points: 10
Solved Threads: 0
 

Are you sure you have a file named index.heml in your "payment" folder? The page your code redirects to is is "http://www.willamettevalleycrane.com/ylhl/payment/index.html"

hopalongcassidy
Junior Poster
148 posts since Oct 2007
Reputation Points: 53
Solved Threads: 13
 

Instead of using the host method, try searching for a certain pattern in your url. Use the code below as it is modified from yours:

Dim strCurrentUrl = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("SCRIPT_NAME")
'If you need the querystring as well, use the line below
'Dim strCurrentUrl = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("SCRIPT_NAME")  & Request.ServerVariables("QUERY_STRING")

if InStr(1, strCurrentUrl, "payment", vbTextCompare) > 0 then
  response.redirect("/ylhl/payment/index.html")
elseif InStr(1, strCurrentUrl, "willamettevalleycrane", vbTextCompare) > 0 then
  'Unless you absolutely need `http://www.willamettevalleycrane.com` in your redirect, use the below line. This assumes that willamettevalleycrane.com is the current website you're on.
  response.redirect("/wvc/index.html")
else

Else, the reason why it is not direction is due to the following errors:
1. It will always detect willamettevalleycrane.com in your host even if it has payment along with it. If you want to keep your coding, switch the first if statement with the second so it detects the payment first.
2. HTTP_HOST will only return the current host as willamettevalleycrane.com. URL returns the remaining version like /payment.asp or what not.
3. Your second if statement is followed by an unclosed first (if ... then ... if) instead of (if ... then ... end if) or (if ... then ... elseif ... end if). Make the second if statement into elseif unless you close the first if statement with an end if. If you wish to keep your following code, then use this fixed version:

<%
EnableSessionState=False

Dim host = Request.ServerVariables("HTTP_HOST")
Dim url = Request.ServerVariables("SCRIPT_NAME")
'or if you prefer the below method. Both give same results.
'Dim url = Request.ServerVariables("URL")

if (host & url) = "willamettevalleycrane/payment" or (host & url)= "www.willamettevalleycrane.com/payment" then
  response.redirect("http://www.willamettevalleycrane.com/ylhl/payment/index.html")
elseif host = "willamettevalleycrane.com" or host = "www.willamettevalleycrane.com" then
  response.redirect("http://www.willamettevalleycrane.com/wvc/index.html")
end if
%>

I highly suggest using my first example. Less room for error especially in typo's int he address bar.

SheSaidImaPregy
Veteran Poster
1,080 posts since Sep 2007
Reputation Points: 43
Solved Threads: 68
 

oh, but if you're also just using these redirection urls for keeping records for you, your best bet is just to pass a variable to one page and then access it that way (like willamettevalleycrane.com/redirect.asp?company=wvc). This way you don't have to create a ton of folders and files. Otherwise.. carry on private.

SheSaidImaPregy
Veteran Poster
1,080 posts since Sep 2007
Reputation Points: 43
Solved Threads: 68
 

Although the suggestions above will work fine, there may be an easier way to accomplish that without all the complex coding.

All subfolders automatically resolve to "index.html" or "default.html" (depending on your server settings).

If you don't already have one, create a file (with the appropriate name as listed above) and add the following code to it:

<html>
<head>
<meta http-equiv="Refresh"
content="5;url=http://www.willamettevalleycrane.com/ylhl/payment/index.html">
</head>
<body>
</body>
</html>


the5 that is diectly after content=" is the number of seconds before the user will be sent to the page.

HTH, Good Luck!

CertGuard
Light Poster
48 posts since Jul 2007
Reputation Points: 10
Solved Threads: 3
 

;) Although the suggestions above will work fine, there may be an easier way to accomplish that without all the complex coding.

All subfolders automatically resolve to "index.html" or "default.html" (depending on your server settings).

If you don't already have one, create a file (with the appropriate name as listed above) and add the following code to it:

<html>
<head>
<meta http-equiv="Refresh"
content="5;url=http://www.willamettevalleycrane.com/ylhl/payment/index.html">
</head>
<body>
</body>
</html>


the5 that is diectly after content=" is the number of seconds before the user will be sent to the page.

HTH, Good Luck!

That's cool, thanks,

Hoppy

hopalongcassidy
Junior Poster
148 posts since Oct 2007
Reputation Points: 53
Solved Threads: 13
 

Anytime ;)

CertGuard
Light Poster
48 posts since Jul 2007
Reputation Points: 10
Solved Threads: 3
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You