it-swarm.com.de

301 Umleiten von www zu nicht www ohne Verwendung von VHOST

Ich habe meine Webanwendung auf EC2 mit Apache ausgeführt. Ich möchte www auf nicht www umleiten. Bei der Suche in Google habe ich dies verwendet, aber es führt zu einer Umleitungsschleife:

<VirtualHost *:80>
    ServerName www.domain.com
    Redirect 301 / http://domain.com/
</VirtualHost>

Ich verwende keine virtuellen Hosts, da der Server nur eine Domäne verwaltet. Was kann im obigen Beispiel falsch sein und wie kann ich 301 umleiten?

P.S. Ich versuche, die Verwendung von .htaccess zu vermeiden.

3
codecool

Sie müssen einige Fragen zu Verwirrung stellen, also werde ich über Möglichkeiten sprechen, eine Weiterleitung von www nach no-www durchzuführen:

1.Erstellen Sie zwei VirtualHost für zwei Domains und verwenden Sie 301 Redirect:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/path/to/site"
</VirtualHost>
<VirtualHost *:80>
    ServerName www.example.com
    Redirect 301 / http://example.com/
</VirtualHost>

2.Erstelle zwei VirtualHost für zwei Domains und verwende .htaccess mit Redirect-Regel:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/path/to/site1"
</VirtualHost>
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot "/path/to/site2"
</VirtualHost>

und erstelle /path/to/site2/.htaccess mit

Redirect 301 / http://example.com/

3.Erstelle 1 VirtualHost und setze Redirect auf common .htaccess:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot "/path/to/site"
</VirtualHost>

erstelle /path/to/site/.htaccess mit

RewriteEngine On
RewriteCond %{HTTP_Host} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
5
Michael Danilov