Tôi muốn biết cách buộc HTTPS (SSL) tại Yii Controller Action.Lực lượng điều khiển Yii HTTPS
Trả lời
Hãy xem bài viết này http://www.yiiframework.com/forum/index.php/topic/25407-forcing-https-in-yii/
class HttpsFilter extends CFilter {
protected function preFilter($filterChain) {
if (!Yii::app()->getRequest()->isSecureConnection) {
# Redirect to the secure version of the page.
$url = 'https://' .
Yii::app()->getRequest()->serverName .
Yii::app()->getRequest()->requestUri;
Yii::app()->request->redirect($url);
return false;
}
return true;
}
}
Và thậm chí this để biết thêm chi tiết.
Code:
private static $secureRoutes = array('site/login'=>'',);
public function filterAccessControl($filterChain) {
if(!Yii::app()->getRequest()->isSecureConnection && array_key_exists($filterChain->controller->route, self::$secureRoutes)){
$this->redirect($this->createAbsoluteUrl($filterChain->controller->route, array(), 'https'));
return false;
}
else if(Yii::app()->getRequest()->isSecureConnection && !array_key_exists($filterChain->controller->route, self::$secureRoutes)){
$this->redirect($this->createAbsoluteUrl($filterChain->controller->route, array(), 'http'));
return false;
}
}
Nếu bạn chỉ muốn áp dụng https buộc lên toàn bộ ứng dụng của bạn, đó là những gì tôi cần, bạn có thể đặt điều này trong bảo vệ của bạn/components/Controller.php:
public function beforeAction($action) {
if(! Yii::app()->getRequest()->isSecureConnection) {
$url = 'https://' .
Yii::app()->getRequest()->serverName .
Yii::app()->getRequest()->requestUri;
Yii::app()->request->redirect($url);
return false;
}
}
Đây là giải pháp sạch hơn bộ lọc nếu bạn cần https trên toàn trang web, vì với bộ lọc, bạn phải áp dụng array_merge với bộ điều khiển chính trong tất cả các trình điều khiển con bạn tạo. Nếu bạn bỏ lỡ một, không có lực lượng https cho bộ điều khiển đó. Hạn chế nhỏ này là nó được gọi là sau khi các bộ lọc đã được gọi, có nghĩa là chế biến nhiều hơn đã được thực hiện hơn chúng ta thường muốn trước khi chuyển hướng.
Nếu bạn cần nó trên bộ điều khiển bằng bộ điều khiển hoặc cơ sở hành động theo hành động, bộ lọc là những gì bạn đang tìm kiếm.
- 1. Cách đặt bộ điều khiển mặc định trong Yii
- 2. Chức năng gọi trong bộ điều khiển khác trong Yii
- 3. Nhận ID Bộ điều khiển Hiện tại trong Yii
- 4. Lực lượng Maven sạch
- 5. Điều khiển âm lượng bằng UIslider Iphone?
- 6. điều khiển âm lượng micrô từ javascript
- 7. Lỗi Apache Lực lượng PHP
- 8. Lực lượng bao gồm trong php.ini?
- 9. Cập nhật ràng buộc lực lượng Silverlight
- 10. Khóa chi nhánh trong lực lượng?
- 11. Tuyên truyền lực lượng giá trị bị ràng buộc
- 12. OAuth2Decorator oauth_aware lực lượng xác thực
- 13. Android khóa lực lượng khóa gần
- 14. kiểm tra lực lượng đồng đội
- 15. Lực lượng tệp Ruby sao chép
- 16. lực lượng bàn phím mở trên android
- 17. Không thể Git-thêm với lực lượng
- 18. Twitter Bootstrap Lựa chọn lực lượng Typeahead
- 19. iOS5 OpenAL switch câm và điều khiển âm lượng
- 20. Bảng điều khiển chỉ số chất lượng TeamCity
- 21. Điều khiển trượt cho âm lượng - JQuery/Javascript
- 22. Tích hợp lực lượng với studio trực quan mà không cần tệp dự án được kiểm tra trong lực lượng
- 23. yii kiểm tra đơn vị hành động điều khiển mà không cần selen
- 24. Yii: Bắt tất cả ngoại lệ cho một bộ điều khiển cụ thể
- 25. Yii - tự động thay đổi các quy tắc từ bộ điều khiển
- 26. Làm thế nào để kiểm soát đơn vị bộ điều khiển trong Yii
- 27. yii quy tắc bộ lọc kiểm soát truy cập trong bộ điều khiển
- 28. các biến vượt qua từ bộ điều khiển để xem trong Yii
- 29. Lực lượng IE9 để mô phỏng IE8. Khả thi?
- 30. Chụp lưu lượng truy cập HTTPS rõ ràng?
Tôi gặp sự cố sau khi HTTPS tất cả các trang web của tôi đều được HTTPS. Bạn có nghĩ là tốt để tạo HttpFilter? –
Bạn nói rằng bạn cần phải buộc HTTPS .. Giải pháp của tôi. Bạn có cần phải buộc HTTPS chỉ cho một số hành động điều khiển? –
Chỉ dành cho UserController và các bộ điều khiển khác phải là http. Khi Im trong HTTPS tất cả các trang đều https. –