skip to Main Content

I am wondering how to deal with a simple redirect. I have a domain, for example: stackguy.com. And I want to redirect users to specific URLs from this url.

Let’s say, stackguy.com/redirect=youtube.com/watch/xxx
And this URL (youtube.com…) needs to be elastic. What the user enters, it should redirect to the website the user wants.

I have totally no idea, to be honest. I’ve tried to do it by using database and by separating all urls but it’s a lot of work and can’t be automated easily.

It can also be done like stackguy.com/red=<id of YT video>
Doesn’t matter to me.

2

Answers


  1. I think you should use query parameters for this and handle the redirect in your javascript. Instead of:

    stackguy.com/redirect=youtube.com/watch/xxx

    use

    stackguy.com?redirect=https://www.youtube.com/watch/xxx

    Then in your js you can check if the redirect paramter is set and redirect the user to the link in the query parameter.

    Here is an example:

    function redirectUrl() {
      // Get the value of the "redirect" query parameter
      const redirect = new URLSearchParams(window.location.search).get("redirect");
      // If the "redirect" parameter is not null, redirect the user to the specified URL
      if (redirect) {
        window.location = redirect;
      }
    }
    

    To use the function you will need to call it in your code for example:

    window.addEventListener("load", redirectUrl);
    
    Login or Signup to reply.
  2. The other solution talks about using javascript which runs on the client side. And you probably want this on the server side.

    You still need to use a parameter

    stackguy.com?redirect=https://www.youtube.com/watch/xxx

    But you can use php to do the redirect.

    $par = filter_var ($_GET ['redirect'] ?? '', FILTER_SANITIZE_STRING); 
    if ($par)
      {header('Location: ' . $par, true, 302); }
    
    • The first line gets the parameter after sanitizing it. It returns blank if its null (or missing)

    • The second line checks if there is a string

    • The third line does a redirect using a 302. This is a temporary redirect, I wouldn’t advise using a 301 (permanent).

    Note that this will only work if the PHP file has done NO HTML output.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search