it-swarm.com.de

Apache httpd.conf zum Umleiten der IP an den Hostnamen

Ich habe eine externe IP-Adresse und einen Hostnamen für meinen Computer konfiguriert.

Innerhalb der Anwendung verwende ich nur die Domänennamen, um auf die APIs zuzugreifen. Wenn ich also versuche, über eine IP-Adresse auf meine APIs zuzugreifen, wird der Fehler 302 angezeigt. . Für die Anforderung (für Homepage), die den Server mit der IP-Adresse trifft, sollte sie auf den Hostnamen umleiten. 

Das heißt, wenn der Benutzer https: //XX.XX.XX.main trifft, sollte er zu https://ayz-abc.mysite.com/main umgeleitet werden.

Dafür habe ich versucht, die Weiterleitung in httpd.conf von Apache zu verwenden. 

<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>

Ich habe auch folgendes probiert

<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>

Bitte helfen Sie mir. 

14
Poppy

OK. Ihnen fehlt eine Umschreibungsbedingung

<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>

Wenn Sie diese Bedingung nicht angeben, wird sie auch mit dem Hostnamen umgeleitet

9
William Greenly

Das funktioniert für mich. Fügen Sie die Konfigurationen in der httpd.conf von Apache hinzu

CASE-1: Wenn der Benutzer http: //XX.XX.XX.XX/main oder http://ayz-abc.mysite.com/main trifft, sollte er zu https umgeleitet werden : //ayz-abc.mysite.com/main

Aufbau:

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerName XX.XX.XX.XX
Redirect /main https://ayz-abc.mysite.com/main
</VirtualHost>

FALL 2: Wenn Benutzer https: //XX.XX.XX.XX/main trifft, sollte er zu https://ayz-abc.mysite.com/main umgeleitet werden.

Aufbau:

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>
1
Poppy

Versuche dies:

RewriteRule $ https://ayz-abc.mysite.com/ [L,R]

Sie können auch Protokolle zum Umschreiben sehen, siehe hier

1
Ankit

Wenn Sie KEINE API verwenden, sondern nur möchten, dass Browser und Crawler anstelle einer IP-Adresse zur URL gehen, können Sie RedirectPermanent verwenden.

<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>

Es hat den Vorteil, dass Sie mit dem Status "301 HTTP" antworten. Diese Signale signalisieren "Bitte verwenden Sie die URL, zu der Sie in der Zukunft weitergeleitet werden". Sie sollten dieselbe Lösung verwenden, wenn Sie Ihre Site in eine neue Domäne verschieben.

0
Bojan Hrnkas