Tôi có một dự án khách hàng nơi tôi cần phải buộc HTTPS cho một thư mục nhất định và buộc HTTP cho tất cả các thư mục khác. Tôi có thể thực thi thành công HTTPS cho thư mục mà tôi mong muốn nhưng sau đó tất cả các liên kết quay lại phần còn lại của trang web sẽ kết thúc bằng HTTPS. Tôi muốn có một quy tắc mà buộc các yêu cầu cho bất cứ điều gì 'không' trong thư mục an toàn để được buộc trở lại HTTP. Dưới đây là những gì tôi có cho đến thời điểm này:Buộc HTTPS trên một số URL nhất định và buộc HTTP cho tất cả các URL khác
RewriteEngine On
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{HTTPS} !=on
RewriteRule ^(my) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1
'my' là tên của thư mục mà tôi cần để buộc HTTPS.
Bất kỳ ý tưởng nào?
Cập nhật: Tôi cũng đã cố gắng:
RewriteEngine On
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
# Force HTTPS for /my
RewriteCond %{HTTPS} !=on
RewriteRule ^(my) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
# Force HTTP for anything which isn't /my
RewriteCond %{HTTPS} =on
RewriteRule !^my http://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
# Remove index.php from URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1
Nhưng thay vì yêu cầu/my bị buộc phải thông qua HTTPS họ bây giờ chỉ cần giải quyết để http://www.example.com/index.php/my
:?
Cảm ơn, đã cứu tôi rất nhiều thời gian! FWIW, trong Wordpress, Wordpress htaccess cơ bản IfModule đã loại bỏ index.php khỏi URL. – Jason