2011-10-06 12 views
9

Sì, so che questo problema è stato fatto 1000 volte prima di ... qui è la differenza ...(Ancora un altro) Bel modo di rimuovere www tramite riscrittura in .htaccess?

Ho trovato questa risposta su StackOverflow per aggiungere il "www" qui: use htaccess to add www with https support

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

ed è la soluzione più bella e graziosa che io abbia mai visto:

  • funziona
  • non ha bisogno di essere cambiato da utilizzare a partire dominio pecifici
  • Esso affronta entrambe le connessioni HTTP e HTTPS
  • Il suo solo 3 linee

Quindi, la mia domanda è semplice. Qualcuno può aiutarmi ad adattare questo codice per lavorare nella direzione opposta? (Per rimuovere il WWW dagli indirizzi web e indirizzare tutti i punti precedenti)?

Credo che tra le soluzioni di cui sopra (e auspicabilmente in basso), avremo la riscrittura www per domarli tutti!

risposta

11
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%2://%1%{REQUEST_URI} [L,R=301] 

Tratto da file di Drupal 7 .htaccess, funziona come un fascino. Aggiornato un po 'per aggiungere il controllo https.

+0

sì! perfezionare! Grazie!! :) – ethanpil

2

ho avuto un problema con la risposta di cui sopra, ha cominciato a reindirizzare a http://http:///

così ho fatto alcuni cambiamenti e questo è il codice che ha funzionato per me (su apache2 server di Ubuntu, il server VPS) per reindirizzare http://www.example.com-http://example.com(www per non www) E da http://example.com a https://example.com(http a https).

RewriteCond %{HTTPS}s on(s)| 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ 
    RewriteRule^http%2://%1%{REQUEST_URI} [R=301,L] 
+0

@bummi Grazie per la modifica della risposta. Sicuramente ho messo l'url reale qui. Seguirò le norme la prossima volta. –

Problemi correlati