it-swarm-vi.tech

Cách nhận Apache2 để chuyển hướng đến thư mục con

Tôi đang chạy Apache2 trên Debian etch, với nhiều máy chủ ảo.

Tôi muốn chuyển hướng để http://git.example.com đi tới http://git.example.com/git/

Điều này thực sự đơn giản, nhưng Google không hoàn toàn cắt giảm. Tôi đã thử các công cụ Chuyển hướng và Viết lại và họ dường như không làm những gì tôi muốn ...

70
Hamish Downer

Cảm thấy hơi ngớ ngẩn - một chút googling bật lên câu trả lời tôi sau:

RedirectMatch ^/$ /git/

Về cơ bản chuyển hướng gốc, và chỉ gốc.

Mã này có thể thực hiện trong tệp .htaccess (Có thẻ cho việc này, vì vậy tôi cho rằng đó là trường hợp sử dụng ban đầu). Nhưng nếu bạn có thể chỉnh sửa, máy chủ chính Apache sẽ cấu hình nó trong phần dành cho trang web của bạn có thể nằm trong phần <VirtualHost>.

docs cho RedirectMatch nói rằng bối cảnh có thể là "cấu hình máy chủ, máy chủ ảo, thư mục, .htaccess".

115
Hamish Downer

Bạn đã có câu trả lời đúng ở đó với chuyển hướng. Bạn phải cẩn thận khi chuyển hướng mọi thứ đến một nơi khác, vì bạn có thể nhận được chuyển hướng đệ quy ở đó. Điều này xảy ra nếu bạn muốn đưa lên một trang bảo trì.

3
Rory

Bạn có thể sử dụng Redirect directive.

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

Câu trả lời được chấp nhận đã giải quyết vấn đề của tôi, nhưng tôi cũng thấy rằng tôi phải thêm chuyển hướng 404 cho các trang không tồn tại - tình huống của tôi là có cài đặt ownCloud nằm ở một cấp dưới gốc ( https: // ví dụ. com/owncloud ).

Điều này làm việc cho tôi, để gửi mọi thứ đến thư mục con của tôi:

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

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