Apache2를 하위 디렉토리로 리디렉션하는 방법


66

여러 가상 호스트가있는 Debian etch에서 apache2를 실행 중입니다.

나는 재 지정하려는 그래서 http://git.example.com간다http://git.example.com/git/

정말 간단해야하지만 Google은 잘 자르지 않습니다. 나는 Redirect와 Rewrite를 시도했지만 그것들이 내가 원하는 것을하지 않는 것 같습니다 ...


당신이 이것에 접근 할 수있는 방법은 여러 가지가 있지만, 정확히 당신이 성취하려고하는 것은 무엇입니까?
WerkkreW

답변:


111

조금 어리석은 느낌-조금 더 인터넷 검색으로 내가 찾은 답을 찾았습니다.

RedirectMatch ^/$ /git/

기본적으로 루트와 루트 만 리디렉션합니다.

이 코드는 .htaccess파일 에서 할 수 있습니다 (이에 대한 태그가 있으므로 원래 사용 사례라고 가정합니다). 그러나 주 서버 아파치 구성을 편집 할 수 있다면 웹 사이트 섹션에 넣을 수 <VirtualHost>있습니다.

RedirectMatch문서에 따르면 컨텍스트 는 "서버 구성, 가상 호스트, 디렉토리, .htaccess"일 수 있습니다.


2
좋아,이 코드를 어디에 넣을 까?
user230910

https://example.com/git/이것이 작동하려면 전체 URI ( ) 를 넣어야했습니다 . 이상한.
Mat M

3

리디렉션과 함께 정답이 있습니다. 재귀 적 리디렉션을 얻을 수 있으므로 모든 것을 다른 곳으로 리디렉션 할 때는주의해야합니다. 유지 보수 페이지를 작성하려는 경우에 발생합니다.


4
과연. Redirect / /git/재귀 불꽃 놀이가 발생합니다.
Davor Josipovic

3

리디렉션 지시문을 사용할 수 있습니다.

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

0

수락 된 답변으로 문제가 해결되었지만 존재하지 않는 페이지에 404 리디렉션을 추가해야한다는 것을 알았습니다. 내 상황은 OwnCloud 설치가 루트 아래 한 레벨 아래에있는 것입니다 ( https://example.com/owncloud ) .

이것은 하위 디렉토리로 모든 것을 보내기 위해 나를 위해 일했습니다.

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

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

2
ErrorDocument는 유용한 문서가 아닌 오류 페이지를 반환해야합니다. 이것은 크롤러에게 중요합니다.
Jonah Benton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.