ฉันเก็บคุกกี้เดียวไว้ในไฟล์และต้องการจำกัดการเข้าถึงของผู้ใช้ที่มีชุดคุกกี้เฉพาะนั้น (พร้อมชื่อที่ระบุ) และเปลี่ยนเส้นทางผู้อื่น (จากหน้าใดก็ได้ในไซต์) ไปยังรูทของไซต์ของฉัน เนื่องจากไซต์ของฉันใช้แบ็กเอนด์ของโหนดเพื่อตรวจสอบสิทธิ์ผู้ใช้ (เช่น เพื่อยืนยันรหัสผ่าน) ฉันยังต้องการยกเว้นหน้า proxypass ("/authenticate") และ "หน้าย่อย" ใดๆ ที่ดำเนินการต่อ
ปัญหาที่ฉันพบเกี่ยวกับ "รายการที่อนุญาตพิเศษ" เหล่านี้คือโดยทั่วไปแล้วจะไม่ครอบคลุมทั้งไซต์ (รวมถึงโดเมนย่อย) และไม่ทำงานสำหรับไดเรกทอรีที่กำลังจัดทำดัชนี
บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน
SSLEngine เปิดอยู่
SSLCertificateFile /etc/apache2/ssl/site.com.pem
SSLCertificateKeyFile /etc/apache2/ssl/site.com.key
</เวอร์ชวลโฮสต์>
<โฮสต์เสมือน *:443>
ชื่อเซิร์ฟเวอร์ site.com
DocumentRoot /var/www/site.com/html
<ไดเรกทอรี /var/www/site.com/html/files>
ตัวเลือก + ดัชนี
AllowOverride ทั้งหมด
</ไดเร็กทอรี>
ProxyRequests ปิด
ProxyPass /อนุญาต http://localhost:3001
ProxyPassReverse /อนุญาต http://localhost:3001
</เวอร์ชวลโฮสต์>
<โฮสต์เสมือน *:443>
ชื่อเซิร์ฟเวอร์ movie.site.com
ProxyRequests ปิด
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</เวอร์ชวลโฮสต์>
<โฮสต์เสมือน *:443>
ชื่อเซิร์ฟเวอร์ mail.site.com
DocumentRoot /var/www/site.com/roundcube
บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/roundcube-error.log
CustomLog ${APACHE_LOG_DIR}/roundcube-access.log รวมกัน
<ไดเร็กทอรี /var/www/roundcube>
ตัวเลือก -ดัชนี
AllowOverride ทั้งหมด
คำสั่งอนุญาตปฏิเสธ
อนุญาตจากทั้งหมด
</ไดเร็กทอรี>
</เวอร์ชวลโฮสต์>
แก้ไข:
เพื่อชี้แจง ฉันรู้ว่าฉันสามารถทำสิ่งต่อไปนี้เพื่อให้บรรลุสิ่งที่ฉันต้องการ (ในระดับหนึ่ง):
RewriteEngine เปิดอยู่
เขียนซ้ำ %{HTTP_COOKIE} !MYCOOKIE
RewriteRule ^/myhome/content/ - [F]
แต่ฉันจะแน่ใจได้อย่างไรว่าสิ่งนี้มีผลกับ VirtualHost ทุกอัน (เช่น ในทุกโดเมนย่อย) และอ่านคุกกี้เดี่ยวจากไฟล์ด้วย เพื่อที่ฉันจะสามารถแก้ไขได้โดยไม่ต้องรีสตาร์ท apache
ขอขอบคุณ!