it-swarm.com.de

.htaccess - wie man "www." generisch?

Dies wird domain.com in www.domain.com ändern:

# Force the "www."
RewriteCond %{HTTP_Host} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Wie ersetze ich den "Domain" - Teil, damit dieser auf any domain funktioniert?

96

Ich würde diese Regel anwenden:

RewriteEngine On
RewriteCond %{HTTP_Host} !=""
RewriteCond %{HTTP_Host} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_Host}%{REQUEST_URI} [R=301,L]

Die erste Bedingung prüft, ob der Wert " Host " nicht leer ist (im Fall von HTTP/1.0). Die zweite prüft, ob der Host - Wert nicht mit www. beginnt. die dritte prüft auf HTTPS (%{HTTPS} ist entweder on oder off, dh %{HTTPS}s ist entweder ons oder offs und im Fall von ons stimmt die s überein). Der Ersetzungsteil von RewriteRule führt dann die Informationsteile einfach zu einer vollständigen URL zusammen.

233
Gumbo

Das wird es tun:

RewriteEngine On
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
40
Martin Drapeau

Wenn Sie alle Nicht-WWW-Anforderungen an Ihre Site auf die WWW-Version umleiten möchten, müssen Sie der .htaccess-Datei den folgenden Code hinzufügen:

RewriteEngine On
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
4
ClickForWebs

Dies funktioniert nicht mit Subdomains.

domain.com wird korrekt zu www.domain.com umgeleitet 

aber

images.domain.com wird zu www.images.domain.com weitergeleitet 

Anstatt zu prüfen, ob die Subdomain "nicht www" ist, sollten Sie prüfen, ob zwei Punkte vorhanden sind:

RewriteCond %{HTTP_Host} ^(.*)$ [NC]
RewriteCond %{HTTP_Host} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_Host}%{REQUEST_URI} [R=301,L]
3
john mccarthy
RewriteEngine On

RewriteCond %{HTTP_Host} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_Host}%{REQUEST_URI} [NE,L,R=301]

Dies leitet example.com zu www.example.com um, ohne Subdomains.

1
starkeen

Im Folgenden sollte "www" jeder Anfrage vorangestellt werden, die keine hat, und die bearbeitete Anfrage an den neuen URI umleiten.

RewriteCond "%{HTTP_Host}" "!^www\."         [NC]
RewriteCond "%{HTTP_Host}" "(.*)"
RewriteRule "(.*)"         "http://www.%1$1" [R=301,L]
1
RoUS

Dies ist eine ältere Frage und es gibt viele verschiedene Möglichkeiten, dies zu tun. Die vollständigste Antwort, IMHO, ist hier zu finden: https://Gist.github.com/vielhuber/f2c6bdd1ed9024023fe4 . (Das Einfügen und Formatieren des Codes hier hat für mich nicht funktioniert)

0
Rick Hellewell