close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Redirect Script for only certain URLs

Thread began 4/08/2009 10:45 am by Travis250923 | Last modified 5/11/2009 8:17 pm by Travis250923 | 6756 views | 10 replies |

Travis250923

Redirect Script for only certain URLs

I am trying to save some $$ on hosting (I know should probably pony up for separate hosting) and want to redirect two specific URLS that are going to my current site (I have three domains pointing to my site). I have setup the domain pointers through my host and essentially have two sites in one directory. I tried using the below script but it redirects all URLS not just the two I specificed. Any help would be great:

$referer = $_SERVER['HTTP_REFERER'];
if ( $referer != "http://mydomain2.com" || "http://mydomain3.com" ) {
header('Location: index2.php');
exit;
};

Thanks

Sign in to reply to this post

Justin Nemeth

I see a few things with the above code that are likely causing some issues. First, after the || you need to add $referer =, the string is probably just equating to true and thus always making the if execute. The other thing to consider is what if they add www or some other subdomain to the beginning of the url? That will not satisfy this explicit string match. I would use strpos() to check for the substring of "mydomain2.com" for example.

A better way to handle this is really outside of PHP altogether and instead use the apache settings. Not sure what sort of settings your host provides, but you can setup virtual hosts in apache and run multiple domains that way. Another way is to use mod_rewrite in a .htaccess file and redirect based on the url in there.

Sign in to reply to this post

Travis250923

Ok so I tried changing to this:

$referer = $_SERVER['HTTP_REFERER'];
if ($referer != '/mydomain2/' || $referer != '/mydomain3/' ) {
header('Location: index2.php');
};

and also this:

$referer = $_SERVER['HTTP_REFERER'];
if ($referer != '/mydomain2/' || $referer != '/mydomain3/' ) {
header('Location: index2.php');
} else{
header('Location: index.php');
};

Neither change the behavior.

I then tried:

$referer = $_SERVER['HTTP_REFERER'];
if (preg_match($referer != '/mydomain2/' || $referer != '/mydomain3/' )) {
header('Location: index2.php');
} else{
header('Location: index.php');
};

but this gives a browser error that it is redirecting in a way that will never complete.

Sign in to reply to this post

Travis250923

I tried this and no change. I can see to get it to redirect all URLs to only one page:

switch ($HTTP_HOST) {

case "/domain2/":
header("Location: /domain2.com/index.php");
break;

case "/domain3/":
header("Location: /domain3/index.php");
break;

default:
header("Location: /index2.php");

};

Sign in to reply to this post

Ray BorduinWebAssist

if you add:

die($HTTP_HOST);

does it print the values you expect for the domains?

Sign in to reply to this post
Did this help? Tips are appreciated...

Travis250923

So I am not getting anything w/that code snippet. Perhaps I'm not placing it right (I don't know much PHP). On a side I get the page to redirect with the last script but it always goes to the default location but does change the URL.

Thanks

Sign in to reply to this post

Justin Nemeth

Try using $_SERVER['HTTP_HOST'] instead of $HTTP_HOST. You can then try die($_SERVER['HTTP_HOST'] to see what the value is set to.

Sign in to reply to this post

Travis250923

So it prints the URL that I enter the site from, so if I use www.domain.com it prints www.domain.com and if I use www.domain2.com it prints www.domain2.com.

The problem is it is not redirecting to the page I want. If they use www.domain.com I want it to go to domain.php and if they use www.domain2.com I want it to to domain2.php

Sign in to reply to this post

Ray BorduinWebAssist

switch ($_SERVER['HTTP_HOST']) {

case "http://www.domain.com":
header("Location: /domain.php");
break;

case "http://www.domain2.com":
header("Location: /domain2.php");
break;

default:
header("Location: /index2.php");

};

Sign in to reply to this post
Did this help? Tips are appreciated...

Travis250923

So that does the same thing. No matter what it redirects to the default page.

Sign in to reply to this post
loading

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...