it-swarm.com.de

Apache mod_rewrite: erzwinge www nur wenn nicht in localhost

Ich habe folgendes in meinem Zugriff, um das WWW in URLs zu erzwingen:

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

Wie wende ich das nur an, wenn nicht auf localhost? Gibt es eine Art Wenn-Bedingung, die ich setzen kann? Im Moment bekomme ich so etwas: http://www.localhost/ ... 

31

RewriteCond ist bereits Ihre "if-Bedingung". Fügen Sie einfach eine weitere hinzu:

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

Ich habe alle hinzugefügt:

RewriteCond %{HTTP_Host} !=localhost
RewriteCond %{HTTP_Host} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=::1
17
Kiran Madipally

Wenn Sie einen anderen Port als 80 verwenden (z. B. localhost:8080), müssen Sie ihn möglicherweise auch zum regulären Ausdruck hinzufügen:

RewriteCond %{HTTP_Host} !^localhost(?::\d+)?$ [NC]
RewriteCond %{HTTP_Host} !^127\.0\.0\.1(?::\d+)?$
0
Gus