จะเปลี่ยนเส้นทาง HTTP เป็น HTTPS บน httpd เดียวกันได้อย่างไร


10

นี่คือสิ่งที่ฉันได้รับ:

  • CentOS 5.4 (32 บิต)
  • ติดตั้ง Apache httpd (รุ่นเซิร์ฟเวอร์: Apache / 2.2.11 (Unix))
  • mod_rewrite แสดงของขวัญแล้ว

คำถาม: วิธีการเปลี่ยนเส้นทางhttp://site.comง่ายๆให้ไปที่https://site.com ไม่ได้ใช้ VirtualHost เป็นตัวกำหนด?

PS: พยายามที่จะหาคำตอบในภายหลังเกี่ยวกับ SF แต่ไม่พบทางออกที่ดี

ขอบคุณ

คำตอบ:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1ทำให้รู้สึกถึงฉันมากขึ้น
cregox

จะไม่วนซ้ำไม่สิ้นสุดที่คุณ?
เออร์เนสต์มุลเลอร์

ไม่เพียงแค่ทดสอบมัน มันเป็นวิธีที่แนะนำภายใต้เอกสาร - ดูที่ส่วนท้ายของเอกสาร
cregox

1
ฉันได้รับการวนซ้ำไม่สิ้นสุดโดยใช้ Apache 2.4.10, ปรับใช้กับ Heroku เมื่อฉันแทรกคำสั่งเหล่านั้นลงใน. htaccess ของฉัน และตัวแปรที่ Cawas แนะนำก็ทำให้ URL ของฉันแปลก ฉันลองชุดคำสั่งอื่น: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsและRewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- ใช้งานได้กับ Chrome และ Firefox แต่ล้มเหลวบน Safari และ Opera น่าสนใจถ้าฉันใช้สามบรรทัดด้านบนและละเว้นRewriteEngine Onฉันจะไม่วนซ้ำอีกต่อไป แต่ก็ยังล้มเหลวใน Safari และ Opera (และใช้งานได้ใน Chrome และ Firefox)
Purplejacket

2

คุณสามารถใช้ mod_alias และRedirectตามไดเรกทอรี เอกสารที่เชื่อมโยงจะระบุรายละเอียดเพิ่มเติม

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.