2011-01-21 2 views
11

Sto provando a scrivere un RewriteRule per il mio file .htaccess. In particolare, ogni volta che un utente accede a una sottodirectory specifica, vorrei che riscrivesse forzare una connessione HTTPS..htaccess reindirizza sottocartella a HTTPS

Ad esempio, ogni volta che qualcuno accede: http://www.mydomain.com/subdirectory (e qualsiasi altra sottodirectory di tale "sottodirectory").

mi piacerebbe che a riscrivere per https://www.mydomain.com/subdirectory

Ho provato quanto segue, ma sembra per creare un ciclo:

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

Inoltre, questo file .htaccess viene inserito nella directory principale del mio dominio.

Qualche idea su come modificare il mio RewriteRule?

Grazie mille!

risposta

18

vorrei mettere questo in directory principale del dominio:

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

Prova

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

Ahh, è una combinazione dei due. MonoMano - hai omesso la sottodirectory nella prima parte di RewriteRule, quindi indirizzando TUTTO il traffico verso l'indirizzo del sottodominio HTTPS. Ho trovato che il controllo per "off" era più affidabile del controllo per! = On, non chiedermi perché!

Che ci si vuole aggiungere sottodirectory nel secondo la risposta di Floern, vedi sotto:

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

Utilizzare questo se non si vuole la barra degli indirizzi per mostrare la sottocartella. Sarà reindirizzare yourdomain.com-yourdomain.com/subfolder ma sarà simile siete ancora in 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

aggiungere le righe riportate di seguito in .htaccess file di quel sottodirectory:

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

questo lavoro per me, questo si consente per reindirizzare a https una cartella specifica, basta aggiungere un file htaccess all'interno della cartella con il seguente contenuto:

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