Technology

#How to Redirect IP Address to Domain Name in NGINX or Apache – CloudSavvy IT

“#How to Redirect IP Address to Domain Name in NGINX or Apache – CloudSavvy IT”

Nginx Logo

It’s an edge case, but if someone types in your IP address instead of your domain name, you’ll want your server to handle that request properly, and redirect them to the actual site. We’ll show how to set it up in NGINX and Apache.

Why Is This Necessary?

For nearly every request, users are likely coming in using your domain name, so you won’t really see this issue in practice. But, it’s an easy fix, and doesn’t hurt to add.

You can set up your server to specifically listen on your IP address and return a 301 redirect to your real name, which will fix the issue and put your website name in the URL bar for any IP address-only requests.

However, a better and more complete method is to simply handle all other routes by returning a redirect. This way, any users sent to your IP address from anywhere (even with wrong host headers) will get redirected. For instance, if you wanted to point alternate spellings of your domain (i.e., howtogreek.com), to your real domain, this default redirect works as well.

Setting Up a Default Route In NGINX

If you simply want to listen on the IP, you can use the following configuration, which returns a 301 redirect for requests made specifically to the IP:

server {
  listen 80;
  listen [::]:80;
  server_name 123.123.123.123;
 
  add_header X-Frame-Options "SAMEORIGIN";

  return 301 https://www.example.com$request_uri;
}

However, you can specifically listen for non-matches using server_name _, which only matches if no other rule does. You can return a 301 redirect in the same fashion:

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  server_name _;

  return 301 https://www.example.com$request_uri;
}

Of course, as with any 301 redirect, you should first test with temporary 302 redirects to ensure your configuration is correct.

Setting Up a Default Route in Apache

In Apache, you can redirect IP requests to your domain name by adding a rewrite rule that matches for the IP:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^123.123.123.123$
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

If you want to redirect all other requests, you can do so by matching everything that isn’t your domain name, though be careful that this doesn’t conflict with any subdomains.

RewriteEngine on
RewriteCond %{SERVER_NAME} !=www.example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=301]

If you liked the article, do not forget to share it with your friends. Follow us on Google News too, click on the star and choose us from your favorites.

For forums sites go to Forum.BuradaBiliyorum.Com

If you want to read more like this article, you can visit our Technology category.

Source

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Close

Please allow ads on our site

Please consider supporting us by disabling your ad blocker!