วิธีรับ Apache2 เพื่อเปลี่ยนเส้นทางไปยังไดเรกทอรีย่อย


66

ฉันใช้ apache2 บน Debian etch โดยมีโฮสต์เสมือนหลายตัว

ฉันต้องการเปลี่ยนเส้นทางเพื่อhttp://git.example.comไปที่http://git.example.com/git/

ควรจะง่ายจริงๆ แต่ Google ไม่ได้ค่อนข้างตัด ฉันได้ลองทำสิ่งที่ Redirect และ Rewrite แล้วและดูเหมือนว่าพวกเขาจะไม่ทำสิ่งที่ฉันต้องการ ...


มีหลายวิธีที่คุณสามารถเข้าถึงสิ่งนี้ แต่อะไรคือสิ่งที่คุณพยายามทำให้สำเร็จ
WerkkreW

คำตอบ:


111

รู้สึกงี่เง่านิดหน่อย googling ก็ยิ่งเปิดคำตอบที่ฉันตามมา:

RedirectMatch ^/$ /git/

โดยทั่วไปการเปลี่ยนเส้นทางรากและเฉพาะราก

รหัสนี้สามารถทำได้ใน.htaccessไฟล์ (มีแท็กสำหรับเรื่องนี้ดังนั้นฉันคิดว่ามันเป็นกรณีการใช้งานเดิม) แต่ถ้าคุณสามารถแก้ไขได้ Apache apache ของเซิร์ฟเวอร์หลักจะกำหนดค่าไว้ในส่วนสำหรับเว็บไซต์ของคุณซึ่งอาจอยู่ใน<VirtualHost>ส่วน

เอกสารสำหรับ RedirectMatchบอกว่าบริบทสามารถ "ตั้งค่าเซิร์ฟเวอร์โฮสต์เสมือนไดเรกทอรี .htaccess"


2
ตกลงดังนั้นจะวางสายของรหัสนี้ที่ไหน
230910

ฉันต้องใส่ URI แบบเต็ม ( https://example.com/git/) เพื่อให้ทำงานได้ แปลก.
Mat M

3

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


4
จริง Redirect / /git/ส่งผลให้เกิดดอกไม้ไฟแบบเรียกซ้ำ
Davor Josipovic

3

คุณสามารถใช้คำสั่งการเปลี่ยนเส้นทาง

<Directory />
   Redirect permanent / http://git.example.com/git/
   ...
</Directory>

0

คำตอบที่ได้รับการยอมรับช่วยแก้ไขปัญหาของฉัน แต่ฉันก็พบว่าฉันต้องเพิ่มการเปลี่ยนเส้นทาง 404 สำหรับหน้าเว็บที่ไม่มีอยู่จริง - สถานการณ์ของฉันคือการติดตั้ง OwnCloud อยู่ใต้รูทระดับหนึ่ง ( https://example.com/owncloud ) .

สิ่งนี้ใช้ได้สำหรับฉันในการส่งทุกสิ่งไปยังไดเรกทอรีย่อยของฉัน:

# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/

# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php

2
ErrorDocument ควรส่งคืนหน้าข้อผิดพลาดไม่ใช่เอกสารที่มีประโยชน์ นี่เป็นสิ่งสำคัญสำหรับซอฟต์แวร์รวบรวมข้อมูล
Jonah Benton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.