วิธีการย้อนกลับพร็อกซีที่มีหรือไม่มีเครื่องหมายทับต่อท้าย


11

ฉันมีเว็บเซิร์ฟเวอร์ Apache ที่ต้องการย้อนกลับเว็บไซต์พร็อกซี่ ดังนั้นexample.com/test/หรือexample.com/testดึงจากเว็บเซิร์ฟเวอร์อื่น ๆ ฉันได้ติดตั้ง reverse proxy สำหรับอันที่ไม่มีเครื่องหมายทับดังนี้:

ProxyPass /test http://othersite.com/test
ProxyPassReverse /test http://othersite.com/test

แต่มันไม่สามารถใช้งานได้กับเครื่องหมายสแลช

ความคิดใด ๆ ฉันลองเปลี่ยนเส้นทางจาก/test/ไปยัง/testโดยไม่มีโชค

ขอบคุณ

คำตอบ:


18

คุณพยายามเขียน url ใหม่หรือไม่?

RewriteEngine on 
RewriteRule ^/test$ /test/ [R]

ProxyRequests Off       
ProxyPreserveHost On

ProxyPass    /test/   http://othersite.com/test/
ProxyPassReverse /test/  http://othersite.com/test/

1

คุณหมายถึงอะไรมันไม่ทำงานกับเครื่องหมายทับต่อท้าย? มันเปลี่ยนเส้นทางไปยังที่ผิดหรือเปล่า? มันทำให้เกิดข้อผิดพลาด 404 หรือไม่? นี่คือสิ่งที่ฉันใช้ในการตั้งค่าพร็อกซีย้อนกลับและซ่อนแหล่งที่มาจากส่วนที่เหลือของโลก

ProxyRequests off
<Location /guides>
  ProxyPass http://blog.domain.com
  ProxyPassReverse http://blog.domain.com
  ProxyPassReverse /
  ProxyHTMLEnable On
  ProxyHTMLURLMap / /guides
  ProxyHTMLURLMap http://blogs.domain.com /guides
  RequestHeader unset Accept-Encoding
  RequestHeader set MySpecialHeader secretkey
  #LogLevel proxy:debug
</Location>

คุณสามารถใช้สิ่งนี้เพื่อทดสอบพร็อกซีของคุณ:

$ curl -I http://localhost:81/guides/top5
HTTP/1.1 301 Moved Permanently
Location: http://localhost:81/guides/top5/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.