sviluppo-web-qa.it

Come fare in modo che Apache2 reindirizzi a una sottodirectory

Sto eseguendo Apache2 su Debian etch, con più host virtuali.

Voglio reindirizzare in modo che http://git.example.com va a http://git.example.com/git/

Dovrebbe essere davvero semplice, ma Google non lo sta tagliando. Ho provato le cose di Redirect e Rewrite e sembra che non facciano proprio quello che voglio ...

70
Hamish Downer

Sentiti un po 'sciocco - un po' più googling ha rivelato la risposta che stavo cercando:

RedirectMatch ^/$ /git/

Fondamentalmente reindirizzare la radice e solo la radice.

Questo codice potrebbe essere eseguito in un .htaccess file (esiste un tag per questo, quindi presumo che sia il caso d'uso originale). Ma se puoi modificarlo, il server principale Apache config lo inserisce nella sezione del tuo sito web probabilmente all'interno di un <VirtualHost> sezione.

documenti per RedirectMatch afferma che contesto può essere "configurazione server, host virtuale, directory, .htaccess".

115
Hamish Downer

Hai la risposta corretta lì con il reindirizzamento. Devi stare attento quando reindirizzi tutto da qualche altra parte, dal momento che puoi ottenere reindirizzamenti ricorsivi lì. Questo accade se si desidera creare una pagina di manutenzione.

3
Rory

È possibile utilizzare la direttiva Redirect.

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

La risposta accettata ha risolto il mio problema, ma ho anche scoperto che dovevo aggiungere un reindirizzamento 404 per pagine inesistenti: la mia situazione è che un'installazione OwnCloud si trova a un livello sotto root ( https: // esempio. com/ownCloud ).

Questo ha funzionato per me, per inviare tutto alla mia sottodirectory:

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

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