2011-01-21 67 views
11

Tôi đang cố gắng viết một RewriteRule cho tệp .htaccess của tôi. Cụ thể, bất cứ khi nào người dùng truy cập vào một thư mục con cụ thể, tôi muốn nó viết lại để buộc kết nối HTTPS..htaccess chuyển hướng thư mục con sang HTTPS

Ví dụ: bất cứ khi nào ai đó truy cập: http://www.mydomain.com/subdirectory (và bất kỳ thư mục con nào khác của "thư mục phụ" đó).

Tôi muốn nó phải viết lại để https://www.mydomain.com/subdirectory

Tôi đã thử những điều sau đây, nhưng nó xuất hiện để tạo ra một vòng lặp:

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

Ngoài ra, tập tin .htaccess này được đặt trong thư mục gốc trong miền của tôi.

Bất kỳ ý tưởng nào về cách sửa đổi RewriteRule của tôi?

Rất cám ơn!

Trả lời

18

tôi sẽ đặt này vào thư mục gốc của tên miền:

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

Hãy thử

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

Ahh, một combo của hai người. MonoMano - bạn đã bỏ qua thư mục con trong phần đầu tiên của RewriteRule, do đó hướng tất cả lưu lượng truy cập đến địa chỉ tên miền phụ HTTPS. Tôi thấy rằng việc kiểm tra 'tắt' là đáng tin cậy hơn kiểm tra! = Trên, không hỏi tôi tại sao!

Bạn muốn thêm thư mục con lại theo phản ứng Floern của, xem dưới đây:

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

Sử dụng này nếu bạn không muốn thanh địa chỉ để hiển thị các thư mục con. Nó sẽ chuyển hướng yourdomain.com-yourdomain.com/subfolder nhưng sẽ trông giống như bạn vẫn còn trên 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

Thêm các dòng đưa ra dưới đây để .htaccess tập tin của thư mục con rằng:

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

Công việc này đối với tôi, điều này cho phép bạn để chuyển hướng đến https một thư mục cụ thể, chỉ cần thêm tệp htaccess bên trong thư mục có nội dung sau:

RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
Các vấn đề liên quan