Apache2-하위 도메인을 다른 URL로 리디렉션


15

동일한 IP 주소를 가리키는 두 개의 하위 도메인 a.website.com과 b.website.com이 있습니다. b.website.com을 a.website.com:8080으로 리디렉션하고 싶습니다. 내 .htaccess 파일에 이것을 가지고 있습니다 ...

RewriteEngine on
RewriteCond {HTTP_HOST} b\.website\.com
RewriteRule ^(.*)$ http://b.website.com:8080$1 [L]

...하지만 작동하지 않습니다.

작동시키는 방법이 있습니까?


.htaccess관심있는 디렉토리 위의 상위 디렉토리에 다음을 추가하십시오 . RedirectMatch ^/foo/$ /foo/bar/또는 RedirectMatch ^/foo/$ /bar/baz/. apache2가 서브 디렉토리로 경로 재지 정하는 방법 도 참조하십시오 .
jww

답변:


20

항상 간단한 VirtualHost를 사용할 수 있습니다.

<VirtualHost *:80>
  ServerName b.website.com
  RedirectPermanent / http://a.website.com:8080/
</VirtualHost>

.htaccess 파일을 선호하는 경우 다시 쓰기 조건에 % 기호가 없습니다.

RewriteEngine on
RewriteCond %{HTTP_HOST} b.website.com
RewriteRule ^(.*)$ http://a.website.com:8080$1 [L]

둘 다 시도했지만 작동하지 않았습니다. mod_rewrite를 활성화했으며 별도의 사이트 파일에 VirtualHost가 있습니다. 내가 놓친 것이 있습니까?
Technius

3
이것은 잘 작동합니다. 하위 도메인이 하위 폴더를 가리키고 있고 해당 하위 폴더가 리디렉션 되었기 때문에 루프 리디렉션 문제가 발생했습니다. 이제 하위 도메인을 폴더에 해당하는 URL로 리디렉션하고 두 번째 리디렉션은 정상적으로 수행됩니다!
Paschalis

처음부터 어떤 방법 으로 액세스했는지 http://또는 보존하기 위해 어떻게해야합니까 ? https://b.website.com
Golar Ramblar

0

주요 답변 보완

리디렉션 유형

가장하는 리디렉션 유형을 명시 적으로 지정할 수 있습니다.
리디렉션 규칙을 테스트하는 동안 임시 리디렉션 (302)을 사용하는 것이 좋습니다.

# In a VirtualHost file
...
Redirect [301|302] /old_location http://new_domain/newlocation


# In a .httaccess file
...
RewriteRule ^(.*)$ http://new_domain/$1 [R=302,L]

디렉토리 일치 패턴 지정

일부 패턴과 일치하는 요청 만 리디렉션 할 수 있습니다.

# In a VirtualHost file
...
RedirectMatch [301|302] ^/public/(.*)$ http://public.example.com/$1


# In a .httaccess file
...
RewriteRule ^/public/(.*)$ http://public.example.com/$1 [R=302,L]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.