it-swarm-id.com

Cara mendapatkan Apache2 untuk mengarahkan ulang ke subdirektori

Saya menjalankan Apache2 pada Debian etch, dengan beberapa host virtual.

Saya ingin mengarahkan agar http://git.example.com pergi ke http://git.example.com/git/

Seharusnya benar-benar sederhana, tetapi Google tidak cukup memotongnya. Saya telah mencoba hal-hal Pengalihan dan Menulis Ulang dan mereka sepertinya tidak melakukan apa yang saya inginkan ...

70
Hamish Downer

Merasa sedikit konyol - sedikit lebih googling muncul jawaban yang saya cari:

RedirectMatch ^/$ /git/

Pada dasarnya mengarahkan kembali root, dan hanya root.

Kode ini dapat dilakukan dalam .htaccess file (ada tag untuk ini, jadi saya menganggap itu adalah use case asli). Tetapi jika Anda dapat mengedit, konfigurasi server utama Apache kemudian meletakkannya di bagian situs web Anda mungkin di dalam <VirtualHost> bagian.

The docs untuk RedirectMatch mengatakan bahwa konteks dapat berupa "konfigurasi server, Host virtual, direktori, .htaccess".

115
Hamish Downer

Anda mendapat jawaban yang benar di sana dengan pengalihan. Anda harus berhati-hati ketika mengarahkan segala sesuatu ke tempat lain, karena Anda bisa mendapatkan pengalihan berulang di sana. Ini terjadi jika Anda ingin memasang halaman pemeliharaan.

3
Rory

Anda dapat menggunakan arahan Redirect.

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

Jawaban yang diterima menyelesaikan masalah saya, tetapi saya juga menemukan bahwa saya harus menambahkan 404 redirect untuk halaman yang tidak ada - situasi saya adalah memiliki instalasi OwnCloud yang terletak satu tingkat di bawah root ( https: // contoh. com/owncloud ).

Ini berfungsi untuk saya, untuk mengirim semuanya ke subdirektori saya:

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

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