I have external IP and hostname configured for my machine.
Inside the application, I am using only the domain names to access the APIs. So when i try to access my APIs through IP address, it shows 302 Moved temporarily error. So, for request(for Homepage) that hits the server with IP address, It should redirect to hostname.
That is, when user hits https://XX.XX.XX.XX/main it should be redirected to https://ayz-abc.mysite.com/main
For this I tried using the redirect in httpd.conf of apache.
<VirtualHost XX.XX.XX.XX>
DocumentRoot "/var/www/html"
#ServerName ayz-abc.mysite.com/
# Other directives here
RewriteEngine On
RewriteRule /.* https://ayz-abc.mysite.com/ [R]
</VirtualHost>
I have also tried with the following
<VirtualHost *.portnum>
DocumentRoot "/var/www/html"
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule https://XX.XX.XX.XX/main https://ayz-abc.mysite.com/main [R=301,L]
</VirtualHost>
Plsssss help me.
Ok. You are missing a rewrite condition
<VirtualHost XX.XX.XX.XX>
DocumentRoot "/var/www/html"
#ServerName ayz-abc.mysite.com/
# Other directives here
RewriteEngine On
RewriteCond %{HTTP_HOST} !^ayz-abc.mysite.com$
RewriteRule /.* https://ayz-abc.mysite.com/ [R]
</VirtualHost>
If you don't include this condition it will redirect even with the hostname
Try this:
RewriteRule $ https://ayz-abc.mysite.com/ [L,R]
Also you can see rewrite logs, see here
This works for me. Add the configurations in httpd.conf of apache
CASE-1: when user hits http://XX.XX.XX.XX/main or http://ayz-abc.mysite.com/main it should be redirected to https://ayz-abc.mysite.com/main
Configuration:
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerName XX.XX.XX.XX
Redirect /main https://ayz-abc.mysite.com/main
</VirtualHost>
CASE 2 : When user hits https://XX.XX.XX.XX/main it should be redirected to https://ayz-abc.mysite.com/main
Configuration:
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot "/var/www/html"
#Server Name
ServerName XX.XX.XX.XX
SSLEngine on
SSLOptions +StrictRequire
# Redirect to the specified URL
Redirect /main https://ayz-abc.mysite.com/main
<Directory />
SSLRequireSSL
</Directory>
....
....
</VirtualHost>
If you are NOT using API but just want browsers and crawlers to go to URL instead of an IP-Address, then you can use RedirectPermanent.
<VirtualHost XX.XX.XX.XX>
RedirectPermanent / http://ayz-abc.mysite.com/
</VirtualHost>
<VirtualHost XX.XX.XX.XX>
DocumentRoot "/var/www/html"
ServerName ayz-abc.mysite.com/
</VirtualHost>
It has the advantage of responding with 301 HTTP status, which signals "please use the url you are redirected to in the future", which helps with search engines. You should use the same solution if you move your site to a new domain.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With