David Brierton
David Brierton

Reputation: 7397

http redirect to specific https link

I have a webpage that I would like to redirect to a specific link if the user is coming from http://

<script language="JavaScript">
  var loc = window.location.href+'';
    if (loc.indexOf('http://')==0){
      window.location.href = loc.replace('http://','https://secure.example.com/app');
    }
</script>

If the user comes from http://example.com/app or any http:// I would like to redirect it to that exact link.

When I run this JavaScript it is taking https://secure.example.com/app and adding domain.com/app like below

https://secure.example.com/appexample.com/app

Any help with this would be greatly appreciated.

I also tried the meta tag thing <meta http-equiv="refresh" content="2;url=https://secure.example.com/app" />

But its just keeps refreshing and doesnt feel right with the hesitation page change.

Upvotes: 0

Views: 870

Answers (3)

karthik006
karthik006

Reputation: 941

Add this to your server configuration file instead of doing it in html

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

301 REDIRECT should be the better way to do it

for an javascript approach(es6). not the recommended way because browser redirect is not always reliable

 return location.protocol != 'https:' ? location.protocol = "https:" 
: {do nothing logic}

Upvotes: 1

Jim W
Jim W

Reputation: 5016

<script language="JavaScript">
  var loc = window.location.href+'';
    if (loc.indexOf('http://www.')==0){
         window.location.href = loc.replace('http://www.','https://secure.');
    }
    else if (loc.indexOf('http://')==0) {
        window.location.href = loc.replace('http://','https://secure.');
    }
</script>

It was doing what you describe because you were replacing http:// with https://secure.example.com/app so of course everything that was after http:// will still be there afterwards.

Upvotes: 1

Obsidian Age
Obsidian Age

Reputation: 42304

I would recommend simply replacing http:// with https://secure. when there's no www.
To additionally cover cases where there is a www, you can simply replace www. with nothing:

//var loc = window.location.href;
var loc = 'http://www.example.com/app';
console.log(loc);
loc = loc.replace('www.', '');
loc = loc.replace('http://', 'https://secure.');
console.log(loc);

Upvotes: 1

Related Questions