사용자가 호스팅 된 서비스에 자신의 도메인 이름을 사용하도록하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/144630

문제

사람들이 콘텐츠를 게시 할 수있는 ASP.NET MVC 웹 앱에서 작업 중이지만 콘텐츠를 원격 서버에 게시하는 것 외에는 사람들이 도메인 이름을 직접 사용할 수 있도록하고 싶습니다. 예를 들어, 사용자 "Tom"은 도메인 이름 Tomsite.com을 가리킬 수 있습니다. http://www.mywebapp.com/user/tom, 그러나 하위 경로도 매핑됩니다. 예를 들어, tomsite.com/path는 www.mywebapp.com/user/tom/path에 매핑되며 웹 방문자에게 투명합니다. 방문자는 tomsite.com의 어느 곳에서나 "mywebapp.com"을 볼 수 없습니다.

Smugmug.com은 사람들이 사진 포트폴리오에 자신의 도메인 이름을 사용할 수 있도록 그러한 서비스를 제공한다고 생각합니다. 같은 결과를 얻고 싶습니다.

어떻게 할 수 있습니까? 감사!

도움이 되었습니까?

해결책

여기에는 여러 단계가 필요합니다.

먼저 사용자가 귀하의 사이트에 대한 CNAME 레코드를 갖도록 도메인을 구성하는 방법을 찾아야합니다. 당신은 교육이 교육 인 곳에서 여러 가지 방법으로 이것을 아치고 할 수 있습니다. 호스팅 제공 업체와 파트너십을 맺으려면 많은 양이 필요합니다.

IIS에서는 각 호스트 이름을 수동으로 추가하거나 (스크립팅을 통해 보관할 수도 있음) 사이트를위한 전용 IP 주소가 있어야합니다.

도메인이 계정과 연관되어야 할 필요성도 있습니다. 사용자는 이것을 스스로 추가해야하며 인터페이스에 확인을 추가하여 도메인이 서버를 가리키는 것을 확인합니다. 이에 대한 코드는 다음과 같습니다 (System.net 네임 스페이스 포함).

if (Dns.GetHostEntry("www.user.example.com").HostName == "www.example.com")
{
    // www.user.example.com is a CNAME for www.example.com
}

귀하는 ASP.NET MVC 프로젝트 에서이 특정 목적으로 경로를 구현해야합니다. 도메인을 고려한 경로에서 사용자 정의 클래스 상속을 만듭니다.

다른 팁

SmugMug (언급 한 사람)는 사용자에게 사용자의 개인 사진 섹션의 URL을 별칭으로하는 CNAME 레코드를 설정하도록합니다. 대부분의 사용자에게는 모든 설정을 얻으려면 호스트에 연락하거나 도움말 파일을 찾아야 할 것입니다.

따라서 www.tomsite.com은 www.mywebapp.com에서 주최하는 페이지를 투명하게 제공 할 수 있지만 사용자는 어떤 종류의 노력을 기울여야합니다. 완전히 완벽하게 만들려면 사용자 웹 호스트와 어떤 종류의 배열이 필요합니다. (Smugmug는 Godaddy와 그러한 배열을 갖는 것으로 보입니다).

나는 당신이 모든 웹 호스트와 그러한 통합을 설정할 수 있을지 의심 스럽습니다. 따라서 유일한 솔루션은 사용자의 웹 사이트를 직접 호스팅하는 것입니다 (나는 그것이 합리적인지를 결정하기 위해 더 넓은 상황에 대해 충분히 알지 못합니다. 해결책).

참고 : 자신의 웹 서버 (일명 URL 재 작성)에서 별명을 설정하면 사이트를 직접 호스팅하지 않는 한 사용자의 도메인에서 가져 오는 사람들이 처음부터 서버에 도착하지 않기 때문에 자신의 사이트를 직접 호스팅하지 않는 한 작동하지 않습니다.

각 고객의 친선 이름이 웹 서버의 외부 IP 주소를 가리키도록하십시오.

IIS를 사용하여 호스트 헤더 요청에 지정된 FriendlyName을 해당 FriendlyName에 전달하려는 논리 웹 사이트에 대한 FriendlyName을 해결하십시오. IIS는 웹 사이트와 가상 폴더를 파일 시스템의 동일한 폴더에 모두 행복하게 매핑합니다. 각 고객을위한 웹 사이트를 만듭니다. 그런 다음 해당 웹 사이트를 고객의 친절한 이름에 바인딩하십시오.

기본 웹 사이트를 자신의 friendlyName에만 매핑해야합니다. 무차별 모드로두면 ( "*"에 매핑 됨) 결과는 예측할 수 없습니다.

호스트 헤더 매핑을 설정합니다

고르다 기본 웹 사이트 아래의 사이트 마디. 에서 행위 상단 오른쪽 버튼을 클릭하십시오 바인딩 ... 열기 위해 사이트 바인딩 대화. http * 80이라고 표시된 단일 항목이 포함 된 바인딩 목록이있을 것입니다. 이것을 선택하고 클릭하십시오. 편집하다... 단추. 세트 호스트 이름 자신의 친절한 이름에.

운영 IIS7 관리자 각 고객 사이트에 대해 사이트 마디. 각 웹 사이트를 작성하는 동안 파일 경로와 호스트 헤더 바인딩을 모두 설정하십시오. 분명히 호스트 헤더 바인딩 (호스트 이름)은 고객의 친숙한 이름이어야합니다.

Webserver 설정에서 Tomsite.com을 MyWebApp.com/user/tom/ Path로 직접 새로 보내십시오.

별칭처럼보십시오 :)

물론, 당신은 asp.net/windows 기반이기 때문에, 당신은 이런 종류의 물건을 자동화하기 위해 II를 깊이 파고 들여야한다고 생각합니다. Apache에 있었다면 httpd.conf에 3 개의 간단한 줄을 추가 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top