Apache mod_rewrite aggiungendo il taglio aggiuntivo alla fine dell'URL

Sto eseguendo CentOS 6.0 e sto cercando di fare mod_rewrite rimuovere il www da qualsiasi URL prefixed con esso. Ecco il codice che ho nel mio httpd.conf:

NOTA: Sto utilizzando un VPS con accesso completo a root, quindi non sto utilizzando file .htaccess o alcuna impostazione "per-directory".

  • Limit CPU di singolo process MYSQL
  • Architettura del server NTP
  • Sessione di PuTTY chiusa sulla password scaduta tramite connessione SSH
  • Ricerca di methods di backup automatici per i siti
  • Come eseguire uno script quando una posta arriva nel server di posta? (Debian)
  • Apache cache che offre un contenuto parziale 206 risposte alle richieste per il contenuto completo
  • RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.aaronjwood\.com$ RewriteRule ^(.*)$ http://aaronjwood.com/$1 [R=301,L] 

    Questo funziona bene per tutte le pagine tranne che l'URL sarà scritto a http://aaronjwood.com// (nota le due barre) o http://aaronjwood.com//contact.php . Qualcuno può aiutarmi a capire perché questo sta succedendo?

  • ha lasciato i pacchetti sull'interface
  • Apache LDAPS Authentication
  • Puppet: gestire (molti) Apache VirtualHosts
  • Apache fast-cgi e php-fpm non riescono a eseguire file php?
  • Apache + LDAP auth su Ubuntu dice "Imansible contattare il server LDAP" mentre ldapsearch è perfetto
  • Quale tipo di SSL ho bisogno per questa configuration vhost?
  • 2 Solutions collect form web for “Apache mod_rewrite aggiungendo il taglio aggiuntivo alla fine dell'URL”

    Poiché è nel file di configuration principale, e non una per-directory ( <Directory> o .htaccess ), allora la barra principale non viene eliminata per il context. In realtà sta aggiungendo (o cercando di aggiungere – non è sicuro se Apache sta rimuovendo l'extra nella maggior parte dei casi, o se il browser client è) la seconda slash a each riscrittura.

    Basta considerare il fatto che la barra principale è inclusa nella string che corrispondi:

     RewriteRule ^/(.*)$ http://aaronjwood.com/$1 [R=301,L] 

    Dal momento che è direttamente in un vhost, ecco la soluzione: rimuovi la slash qui: http://aaronjwood.com$1

    Un altro suggerimento: quando da sola, ^(.*)$ È uguale a (.*) .

    Ecco la soluzione:

     RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.aaronjwood\.com$ RewriteRule (.*) http://aaronjwood.com$1 [R=301,L] 

    Per favore dimmi se ha funzionato.

    Olivier

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.