2011-01-21 37 views
11

Estoy tratando de escribir una RewriteRule para mi archivo .htaccess. Específicamente, cada vez que un usuario accede a un subdirectorio específico, me gustaría Reescribir para forzar una conexión HTTPS..htaccess redirigir subcarpeta a HTTPS

Por ejemplo, cuando alguien accede a: http://www.mydomain.com/subdirectory (y cualquier otro subdirectorio de ese "subdirectorio").

me gustaría que volver a escribir a https://www.mydomain.com/subdirectory

He intentado lo siguiente, pero parece que para crear un bucle:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L] 

Además, este archivo .htaccess se coloca en la raíz de mi dominio

¿Alguna idea sobre cómo modificar mi RewriteRule?

¡Muchas gracias!

Respuesta

18

Me gustaría poner esto en el directorio raíz del dominio:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/$1 [R=301,L] 
-1

Trate

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L] 
1

Ahh, es una combinación de los dos. MonoMano: omitió el subdirectorio en la primera parte de RewriteRule y, por lo tanto, dirigió TODO el tráfico a la dirección del subdominio HTTPS. ¡Descubrí que buscar "apagado" era más confiable que buscar! = Encendido, ¡no me preguntes por qué!

Lo que quiere añadir el subdirectorio de vuelta en de acuerdo con la respuesta de Floern, ver más abajo:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L] 
0

Uso esto si no quieren la barra de direcciones para mostrar la subcarpeta. Volverá a dirigir a yourdomain.comyourdomain.com/subfolder pero se verá como usted todavía está en yourdomain.com

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?yourprimarydomain.com$ 
RewriteCond %{REQUEST_URI} !^/subfolder/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /subfolder/$1 
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$ 
RewriteRule ^(/)?$ subfolder/index.php [L] 
1

Añadir las líneas que figuran a continuación a .htaccess archivo de ese subdirectorio:

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://www.domain.com/subdirectory/$1 [L,R=301] 
4

Este trabajo para mí, esto le permite para redirigir a https una carpeta específica, simplemente agregue un archivo htaccess dentro de la carpeta con el siguiente contenido:

RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
Cuestiones relacionadas