Cara mendapatkan Apache2 untuk mengarahkan ulang ke subdirektori


66

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

Saya ingin mengarahkan agar http://git.example.compergi kehttp://git.example.com/git/

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


Ada banyak cara Anda bisa mendekati ini, tetapi apa sebenarnya yang ingin Anda capai?
WerkkreW

Jawaban:


111

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

RedirectMatch ^/$ /git/

Pada dasarnya mengarahkan kembali root, dan hanya root.

Kode ini bisa dilakukan dalam .htaccessfile (ada tag untuk ini, jadi saya menganggap itu adalah kasus penggunaan asli). Tetapi jika Anda dapat mengedit, konfigurasi apache server utama kemudian meletakkannya di bagian situs web Anda mungkin di dalam <VirtualHost>bagian.

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


2
ok, jadi di mana harus meletakkan baris kode ini?
user230910

Saya harus meletakkan URI penuh ( https://example.com/git/) agar ini berfungsi. Aneh.
Mat M

3

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.


4
Memang. Redirect / /git/menghasilkan kembang api rekursif.
Davor Josipovic

3

Anda dapat menggunakan arahan Redirect.

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

0

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://example.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

2
ErrorDocument harus mengembalikan halaman kesalahan, bukan dokumen yang berguna. Ini penting untuk perayap.
Jonah Benton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.