DNS를 사용하여 경로가있는 다른 URL로 리디렉션 [닫힘]


120

DNS를 통해 도메인을 다른 도메인으로 리디렉션하려고합니다.

IN CNAME을 사용하는 것이 가능하다는 것을 알고 있습니다.

www.proof.com IN CNAME www.proof-two.com.

내가 필요한 것은 경로가있는 리디렉션입니다. 누군가를 입력하면 www.proof.com다음으로 이동해야합니다.www.proof-two.com/path/index.htm

웹 서버 기능을 사용하여 수행 할 수 있지만 DNS 리디렉션이 필요합니다.

이게 가능해?


Google 도메인을 사용하는 경우 왼쪽 메뉴-> 웹 사이트에서 "도메인 전달"을 사용할 수 있습니다.
John_J

답변:


136

아니요, 당신이 요청한 것은 불가능합니다. DNS는 이름 확인 시스템이며 HTTP에 대해 아무것도 모릅니다.


93

AWS를 사용하는 경우 다음과 같은 리디렉션이

mail.foo.com --> mail.google.com/a/foo.com

다음과 같이 설정할 수 있습니다.

  1. s3에서 빈 버킷 "mail.foo.com"을 만듭니다.
  2. 속성-> 정적 웹 사이트 호스팅에서 "모든 요청을 mail.google.com/a/foo.com으로 리디렉션"을 설정합니다.
  3. route53에서 A 레코드 "mail.foo.com"을 만듭니다.
  4. "alias"를 활성화하고 별칭 대상을 "mail.foo.com"버킷으로 설정합니다.

순수한 DNS 솔루션은 아니지만 작동합니다.)

그러나 리디렉션은 모든 URL 매개 변수 (예 : ...? param1 = value1 & param2 = value2)를 건너 뜁니다.


3
이것은 AWS를 사용하는 모든 사람에게 훌륭하고 매우 유용한 답변입니다. 감사합니다! 달콤한 해결 방법
Ken

6
참고 사항 : 버킷은 리디렉션되는 호스트 이름과 일치하도록 이름을 지정해야합니다. serverfault.com/a/584714/105720
Jordan Feldstein

1
이것은 특정 페이지가 아닌 디렉토리로의 리디렉션으로 작동합니다. 모든 요청을 "www.example.com/foo/bar/baz.html"로 리디렉션하면 AWS가 "유용하게"URL에 "/"를 추가하여 "www.example.com/foo/bar/baz"로 바꿉니다. .html / "및 404 오류를 반환합니다.
Earl Ruby 19 년

34

나는 이것이 오래된 스레드이지만 FWIW라는 것을 알고 있습니다. 다른 누군가가 이것을 할 방법을 찾고 있다면.

DNS는 URL의 경로 부분을 이해하지 못하지만 하위 도메인을 이해하므로 다음 대신 :

www.proof.com IN CNAME www.proof-two.com/path/index.htm

다음을 사용할 수 있습니다.

www.proof.com CNAME에서 proof.proof-two.com

그런 다음 proof-two.com을 호스팅하는 곳으로 이동하여 proof.proof-two.com이 www.proof-two.com/path/index.htm을 가리 키도록 설정합니다.

~ 고양이 피부를 만드는 방법은 항상 여러 가지가 있습니다.


2
이것은 proof.proof-two.com이 www.proof-two.com/path/index.htm을 가리 키도록 만드는 대신 쓸모없는 구조처럼 들립니다. www.roof.com이 거기를 가리 키도록 만드는 것이 좋습니다. 추가 DNS 레코드.
Michiel 2013

12
@Michiel 웹 서버에 쉽게 액세스 할 수 있다면 쓸모없는 구조처럼 들립니다 proof-two.com. 때로는 대기업 (및 관료)이 모든 것을 가능한 것보다 훨씬 더 복잡하게 만듭니다.
cregox

1
"그런 다음 proof-two.com을 호스팅하는 곳으로 이동하여 proof.proof-two.com이 www.proof-two.com/path/index.htm을 가리 키도록 설정하십시오."어떻게해야합니까?
user2060451

17

이 문제를 해결하는 데 도움이 될 개인 프로젝트가 있습니다. DNS 설정을 변경하기 만하면 도메인을 리디렉션 할 수있는 오픈 소스 리디렉션 솔루션입니다. 프로젝트 링크 : https://redirect.center/ .

URL 매개 변수를 유지하면서 www.proof.com을 www.proof-two.com으로 리디렉션하려면 proof.com에서 www DNS 항목을 설정하면됩니다.

www.proof.com IN CNAME www.proof-two.com.opts-uri.redirect.center.


문제는 도메인뿐만 아니라 전체 경로 URL로 리디렉션하는 것이 었습니다.
Tony Chiboucas 2015 년

2
그것은 여전히 ​​완전한 경로가 아닙니다
Tony Chiboucas 2015

2
서비스의 ".opts-slash"를 통해 경로를 지원할 수 있습니다. 함수. jobs.my-domain.commy-domain.com/jobs로 리디렉션 다음과 같이 DNS 영역을 구성합니다. 호스트 레코드 : 작업 유형 : CNAME받는 사람 : www.my-domain.com.opts-slash.jobs.redirect.center
데이비드 터너

1
레지스트라가 리디렉션을 제공하지 않는 경우 이것은 정말 멋지고 간단합니다 – 대단합니다!
Luca Steeb 2017

1
이것은 완벽 해요! 나는 이와 같은 것이 존재한다고 생각했지만 찾을 수 없었습니다 (내 생각에 SEO 작업이 필요합니다).
Matt Dodge

11

redirect.center를 사용하면 정말 쉽습니다.

CNAME을 다음과 같이 생성하려는 경우 :

www.proof.com IN CNAME www.proof-two.com/path/index.htm

redirect.center를 사용하면 CNAME이 다음과 같이 표준 모드로 보입니다.

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center.

이제 https 웹 사이트로 리디렉션하려면 다음 옵션을 추가 할 수 있습니다.

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center.

이제 운명 페이지에서 슬래시가있는 표준 모드로 CNAME을 만들 수 있습니다.


나는 이것을 시도했지만 작동하지 않습니다. 사용자를 redirect.center 사이트로 리디렉션하는 것뿐입니다.
Renan

CNAME 레지스트리를 복사 할 수 있습니까? 재조명 된 사이트도 복사 할 수 있습니까?
Alvaro Aguilar

1
@Renan 원본 도메인이 DNS에 있고 redirect.center 서버에서 조회 할 수 있는지 확인합니다. 브라우저에서 target-domain.com.redirect.center로 이동하는 것도 작동하지 않습니다. 설명 참조 : github.com/udleinati/redirect.center/issues/…
redfish

11

편집하다

인프라 내에서 이러한 종류의 리디렉션을 허용하는 것은 내 공급자 (OVH) 인 것 같습니다.

참조 : https://docs.ovh.com/gb/en/domains/redirect-domain-name/

보관을 위해 아래 답변을 유지하고 있지만 의미있는 정보를 제공하지 않습니다.

원래 답변

TXT 레코드를 사용하여 수행했습니다.

리디렉션하기 foo.bar.com위해 foo2.bar.com/path, 다만 추가 foo IN TXT "1|foo2.bar.com/path"bar.com DNS 영역.

또한 URL 경로와 매개 변수를 유지합니다. 따라서 액세스를 시도 foo.bar.com/hello?foo=bar하면로 리디렉션됩니다 foo2.bar.com/path/hello?foo=bar.


6
이걸 좀 더 살피시 겠어요? TXT 레코드 사용 방법에 대한 참조가 있습니까?
Josiah

URL 매개 변수도 유지 되나요?
andreas

1
조사 후 OVH가 나를 위해 그렇게하는 것 같습니다. 참조 : ovh.com/fr/g1339.redirection-nom-de-domaine (fr). 내 대답을 업데이트하겠습니다.
가브리엘

10

원래 질문에 대답하기 위해, 아니요, 원하는 것은 DNS 만 사용하여 불가능합니다 (모든 사람이 언급했듯이). 이미 언급 한 모든 것 외에도 다른 옵션은 URL 리디렉션 서비스를 사용하는 것입니다. 이러한 유형의 서비스를 사용하면 필요에 따라 다양한 유형의 URL 리디렉션을 구성 할 수 있습니다. 예를 들면 :

  1. 도메인 정점을 www. 하위 도메인 또는 그 반대
  2. 도메인 이름 모음을 단일 대상으로 전달 (도메인 철자 오류, 이전 회사 이름 등을 전달하는 데 유용함)
  3. 특정 도메인 이름을 딥 링크 된 페이지로 전달 (예 : OP가 원하는 것)

이를 수행하는 서비스는 EasyRedir입니다. 입니다. 전체 공개 : EasyRedir을 개발했습니다. 하지만 확실히 다른 옵션이 있으므로 주위를 둘러 보는 것이 좋습니다.


5

DNS는 URL의 경로 부분을 리디렉션하지 않으므로 불가능합니다.

첨가

www.proof.com IN CNAME www.proof-two.com

www.proof.com에 대한 액세스를 www.proof-two.com으로 직접 연결합니다. 여기서 웹 서버 구성을 사용하여 사용자를 적절한 페이지로 안내해야합니다.


4

이 문제에 대한 나의 해결책은 매우 간단하고 간단했습니다. 도메인 내부에서 실행되는 IIS 서버 만 있으면됩니다.

IIS의 호스트 이름을 사용하여 단일 IIS 서버의 여러 사이트를 확인하여 IIS 서버를 가리 키도록 DNS의 CNAME을 설정합니다. 동일한 IIS 서버를 사용하여 몇 개의 하위 도메인을 외부 사이트로 팜 아웃하고 있습니다.

그런 다음 IIS 설치 설정에서 해당 사이트가 오프 사이트 사이트 / 경로로 이동하도록 리디렉션합니다. 제 경우에는 catalog.ourdomain.com으로 이동하려는 호스팅 된 카탈로그였습니다. 여기에서 모든 조정은 IIS에서 수행됩니다. 트래픽이 차단되지 않도록 익명 인증을 활성화해야합니다.


3

다음과 같은 시나리오가 있다고 가정합니다. 다양한 웹 사이트를 호스팅하는 고유 한 웹 서버가 있으며 각 웹 사이트는 별도의 도메인으로 제공됩니다.

따라서 page1.html은 www.customer1.com 등에서 제공해야합니다 .

  1. example.com dns 서버 (웹 서버) 내에 하위 도메인을 만듭니다 .

    customer1.example.com

  2. Apache 가상 서버 설정에서 다음과 같이 하위 도메인을 고객 # 1의 웹 사이트가 포함 된 디렉토리에 매핑합니다.

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> "ServerAlias"의 값을 확인하십시오. 다음 단계에서 중요합니다.

이 시점에서 다음을 검색하여 customer1 웹 사이트로 이동할 수 있습니다.

customer1.example.com

  1. customer1.com의 DNS 설정에서 CNAME 레코드를 만들어야합니다.

    CNAME = www LOCATION = customer1.example.com

이제 www.customer1.com을 사용할 수 있습니다.


3

관련 작업은 아래의 모든 결론을 내 렸습니다.

문제:

http://a.com/p1/p2.html 은 오늘 http://B.com/p1/p2.html 로 이동해야
하지만 나중에 수동 / 자동으로 구성하면 동일한
http://a.com/p1로 이동해야합니다. /p2.htmlhttp://C.com/p1/p2.html 로 이동해야합니다.

답변:

DNS- 이름을 IP 주소로 변환

많은 리디렉션을 수행 할 수 있지만 항상 출력은 IP 주소입니다. DNS는 URL의 경로 또는 프로토콜 부분을 이해하지 못하고 도메인 부분 만 이해합니다. 즉, a.com 만 IP 주소로 변환되므로 http 를 누르면 : //a.com/p1/p2.html 은 DNS에서 잘못 구성하면 http://152.132.121.11/p1/p2.html 로 변환 될 수 있습니다 . 그러면 152.132.121.11 ( http : //152.132. 121.11 / p1 / p2.html ), 400 초 오류 (400, 403 등)가 발생합니다.

리디렉션 -이이다 http://a.com/p1/p2.html 로 변환 할 수 있습니다 http://b.com/p1/p2.html

GET, POST와 같은 모든 메소드는 헤더와 본문이 있으면 작동 할 수 있지만 웹 서버가 관련되어 있으면 실패 지점이 될 수 있으므로 확장 성과 가용성이 핵심입니다.

당신은에있는 경우 AWS , 경로 (53) -> API 게이트웨이는 내부적으로 클라우드 프론트를 사용하여 사용자 지정 도메인하지만 가능하다

Amazon Certification Manager, AWS Gateway 사용자 지정 도메인 및 Route53에서 가능합니다. ACM에 대한 us-east-1 제한 사항에 유의하십시오.

누군가를 돕는 희망


2

거의 모든 사람들이 이미 언급했듯이 DNS 만 사용하는 것은 불가능합니다. 해결 방법으로 NGINX ( http://nginx.org/en/docs/http/request_processing.html )를 .

요약-NGINX에서 서버 이름을 기반으로 요청을 리디렉션 할 수있는 여러 가상 서버를 만들 수 있습니다.

전의. http://first.my-server.com 은 장소 A로 리디렉션 하고 http://second.my-server.com 은 장소 B로 리디렉션하지만 둘 다 단일 물리적 서버를 공유합니다.


0

htaccess rewrite mod를 사용하고 사용자가 다른 도메인이 아닌 특정 도메인을 요청하는 경우 하위 폴더에 다시 쓸 수 있습니다.


-1

물론 다음 트릭을 사용하여 리디렉션 할 수 있습니다.

새 표준 주 영역을 만듭니다. 리디렉션 할 가상 URL과 동일하게 이름을 지정합니다.이 가상 이름이 AD DNS 이름과 다른지 확인합니다. 다음 항목을 사용하여 A 레코드를 만듭니다.

공백 ....................... A ......................... ... ip-addr-2

www ......................... A ....................... ..... ip-addr-2

여기서 우리가 가진 것은 본질적으로 방향 전환입니다. 유효한 URL은 기존 DNS 주 DNS 영역을 기반으로 확인됩니다. 가상 URL은 ip-addr-2로 리디렉션됩니다. 중요한 것은이 항목의 이름이 비어 있으므로 레코드의 다음 항목으로 내려가 ip-addr-2로 리디렉션된다는 것입니다.


-4

모든 사람이 이미이 사실을 언급했으며 귀하를 도울 수있는 서비스에 대한 또 다른 옵션을 제공하고 싶습니다. www.301redirect.it 는 도메인 (와일드 카드 사용)을 모든 대상 URL로 리디렉션 할 수있는 무료 서비스입니다.

공개도 추가하고 싶습니다. 저는이 서비스의 개발자이며 다른 옵션이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.