2012-01-06 19 views
8

tengo esta regla de reescritura simple y funciona correctamente bajo http:regla de reescritura para trabajar en HTTP y HTTPS

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

Sin embargo, la norma no tiene en efecto cuando yo estaba en https . Modifiqué el conjunto de reglas a lo siguiente, pero fue en vano.

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

¿Cómo puedo hacer que la regla para trabajar tanto en http y https ? Por favor, avíseme si necesito proporcionar más información.

+1

Es es un .htaccess o un vhost? Si es un vhost, simplemente coloque las reglas de reescritura en un archivo separado y encuéntrelo en ambos fantasmas – fge

+0

Es un vhost. @fge: ¿Te refieres a ambos vhost para non-ssl y ssl? Lo siento, puede sonar muy básico, pero estoy empezando a familiarizarme con Apache mod-rewrite. – moey

+1

Bueno, las directivas mod_rewrite son como cualquier otra, si las pones en otro archivo y 'Include 'este archivo de otro, lo hará. Así que sí, solo escriba las reglas en otro archivo que incluya tanto en el vhost SSL como en el no SSL (quitando el 'RewriteCond' en HTTPS). – fge

Respuesta

8

Apache utiliza un host virtual diferente para la configuración 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> 

Este enlace tiene un ejemplo de configuración de Apache con SSL en Debian, pero debe ser fácil de extrapolar a cualquier plataforma que está en http://www.debian-administration.org/articles/349

Cuestiones relacionadas