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
%>

Recommended Answers

All 6 Replies

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.

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.

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>

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

HTH, Good Luck!

;)

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>

the 5 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

Anytime ;)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.