2012-01-06 11 views
8

ho questa semplice regola di riscrittura e funziona correttamente in http:regola di riscrittura per lavorare su HTTP e HTTPS

RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$ 
RewriteRule ^/work/all.html /portfolio/ [L,R=301] 

Tuttavia, la regola non prende in vigore quando ero in https . Ho modificato la regola impostata su quanto segue, ma senza risultato.

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$ 
RewriteRule ^/work/all.html /portfolio/ [L,R=301] 

Come posso fare che regola per lavorare sia su http e https? Per favore fatemi sapere se ho bisogno di fornire ulteriori informazioni.

+1

Is è un .htaccess o un vhost? Se un vhost, basta mettere le regole di riscrittura in un file separato e trovarlo in entrambi i vhosts – fge

+0

È un vhost. @fge: intendevi sia vhost per non-ssl e ssl? Scusa, potrebbe sembrare davvero semplice, ma sto appena iniziando a familiarizzare con la riscrittura del codice di Apache. – moey

+1

Bene, le direttive mod_rewrite sono come le altre, se le metti in un altro file e "Includi" questo file da un altro, lo farà. Quindi sì, basta scrivere le regole in un altro file che includi sia nel vhost SSL che non SSL (rimuovendo il 'RewriteCond' su HTTPS). – fge

risposta

8

Apache utilizza un vhost diverso per la configurazione SSL:

<IfModule mod_ssl.c> 
    <VirtualHost _default_:443> 
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$ 
    RewriteRule ^/work/all.html /portfolio/ [L,R=301] 
    ... 
    </VirtualHost> 
</IfModule> 

Questo legame ha un esempio per la configurazione di Apache con SSL su Debian, ma dovrebbe essere facile estrapolare a qualsiasi piattaforma si è in http://www.debian-administration.org/articles/349

Problemi correlati