Vraag Hoe Apache2 naar een subdirectory te leiden


Ik gebruik apache2 op Debian-etch, met meerdere virtuele hosts.

Ik wil dat zo omleiden http://git.example.com gaat naar http://git.example.com/git/

Moet heel eenvoudig zijn, maar Google snijdt het niet echt. Ik heb Redirect en Rewrite geprobeerd en ze lijken niet echt te doen wat ik wil ...


57
2018-05-19 17:20


oorsprong


Er zijn veel manieren om dit te benaderen, maar wat is precies wat u probeert te bereiken? - WerkkreW


antwoorden:


Voel een beetje raar - een beetje meer googlen liet het antwoord zien dat ik zocht:

RedirectMatch ^/$ /git/

In principe de wortel omleiden, en alleen de root.

Deze code zou kunnen doen in a .htaccess bestand (er is een tag voor, dus ik neem aan dat dit de originele use case is). Maar als u kunt bewerken, zet de apache van de hoofdserverconfiguratie dan in de sectie voor uw website, waarschijnlijk binnen een <VirtualHost> sectie.

De documenten voor RedirectMatch zeg dat de context kan "serverconfiguratie, virtuele host, directory, .htaccess" zijn.


103
2018-05-19 17:23



oké, dus waar zet je deze rij code neer? - user230910
Ik moest een volledige URI plaatsen (https://example.com/git/) om dit te laten werken. Vreemd. - Mat M


Je hebt het juiste antwoord daar met de omleiding. Je moet voorzichtig zijn bij het omleiden van alles naar ergens anders, omdat je daar recursieve omleidingen kunt krijgen. Dit gebeurt als u een onderhoudspagina wilt plaatsen.


3
2018-06-11 15:59



Inderdaad. Redirect / /git/ resulteert in recursief vuurwerk. - Davor Josipovic


U kunt de omleidingsrichtlijn gebruiken.

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

3
2017-09-25 18:57





Het geaccepteerde antwoord loste mijn probleem op, maar ik ontdekte ook dat ik een 404-omleiding moest toevoegen voor niet-bestaande pagina's - mijn situatie is dat er een OwnCloud-installatie is die zich een niveau onder root bevindt (https://example.com/owncloud).

Dit werkte voor mij, om alles naar mijn subdirectory te sturen:

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

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

0
2017-09-11 21:29



ErrorDocument moet een foutpagina retourneren, geen nuttig document. Dit is belangrijk voor crawlers. - Jonah Benton