J'ai une adresse IP externe et un nom d'hôte configurés pour ma machine.
Dans l'application, j'utilise uniquement les noms de domaine pour accéder aux API. Ainsi, lorsque j'essaie d'accéder à mes API via une adresse IP, il affiche l'erreur 302 déplacée temporairement . Ainsi, pour les demandes (pour la page d'accueil) qui se connectent au serveur avec une adresse IP, il convient de rediriger le nom d'hôte.
C'est-à-dire que lorsque l'utilisateur clique sur https: //XX.XX.XX.XX/main il devrait être redirigé vers https://ayz-abc.mysite.com/main
Pour cela, j'ai essayé d'utiliser la redirection dans httpd.conf d'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>
J'ai aussi essayé avec ce qui suit
<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 aidez-moi.
D'accord. Il vous manque une condition de réécriture
<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>
Si vous n'incluez pas cette condition, elle sera redirigée même avec le nom d'hôte.
Cela fonctionne pour moi. Ajouter les configurations dans httpd.conf d'Apache
CASE-1: lorsque l'utilisateur tape http: //XX.XX.XX.XX/main ou http://ayz-abc.mysite.com/main il devrait être redirigé vers 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>
CAS 2: Lorsque l'utilisateur clique sur https: //XX.XX.XX.XX/main il devrait être redirigé vers 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>
Essaye ça:
RewriteRule $ https://ayz-abc.mysite.com/ [L,R]
Vous pouvez aussi voir les journaux de réécriture, voir ici
Si vous n'utilisez PAS l'API mais souhaitez simplement que les navigateurs et les robots d'exploration accèdent à l'URL au lieu d'une adresse IP, vous pouvez utiliser 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>
Il présente l’avantage de répondre avec le statut 301 HTTP, ce qui signifie "veuillez utiliser l’URL vers laquelle vous serez redirigé à l’avenir", ce qui facilite la tâche des moteurs de recherche. Vous devriez utiliser la même solution si vous déplacez votre site vers un nouveau domaine.