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/
...
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]
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
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+)?$