2009-07-31 6 views
8

Tôi có một trang web yêu cầu (rõ ràng) HTTPS để thanh toán. Bản sửa lỗi hiện tại được đặt ra liên quan khiến toàn bộ trang web chạy ở chế độ SSL, nhưng điều này đang gây ra sự cố.Sử dụng .htaccess để kiểm soát HTTPS trên các trang nhất định

Làm thế nào tôi có thể thay đổi điều này ...

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] 

Để chỉ định một URL nhất định (chẳng hạn basket.php) như HTTPS?

Trả lời

12

Tôi tin rằng điều này sẽ làm việc:

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} /basket.php 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] 
+0

Splendid, cảm ơn! – Meep3D

13

Một phiên bản ngắn hơn:

RewriteCond %{HTTPS} off 
RewriteRule ^basket\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [L] 
+0

Làm cách nào tôi có thể sửa đổi để chấp nhận nhiều trang? Nói giỏ và kiểm tra và blah? – bMon

+0

Thay đổi mẫu '^ basket \ .php $' thành bất kỳ thứ gì bạn muốn. Nếu bạn cần trợ giúp với cụm từ thông dụng, hãy xem [Giới thiệu về mod_rewrite của Apache] (http://httpd.apache.org/docs/current/rewrite/intro.html). – Gumbo

+0

"Trong tài liệu này, chúng tôi cố gắng cung cấp đủ từ vựng regex để bạn bắt đầu, mà không bị áp đảo, với hy vọng RewriteRules sẽ là công thức khoa học, thay vì câu thần chú." - heh, đó là tôi đến một tee - không nữa, cảm ơn. – bMon