2016-08-31 4 views
1

IIS7에서 호스팅되는 ASP .NET MVC 5 프로젝트가 있습니다.IIS가 웹 사이트 URL에 도메인을 추가합니다.

<a href="www.domain.com"> blabla </a> 

그것은 domainx 또는 IPX에서 호스팅 : 제품 페이지에서

나는이 코드를 가지고있다. 이제 사이트를 탐색하여 거기에있는 URL 위로 마우스를 가져 가면 www.domainx.com/www.domain.com으로 이동한다는 것을 알 수 있습니다. IP를 사용하면 동일한 것입니다. 대신 URL에 IP 접두어가 붙습니다.

이 문제의 원인은 무엇이며 어떻게 중지시킬 수 있습니까?

답변

2
내가 http:// 프로토콜을 변경, 인덱스 페이지 (조회수/홈/Index.cshtml)에 앵커 하이퍼 링크로 SO 사용하여 샘플 프로젝트에 문제를 재현했다

단지 WWW :

<a href="www.stackoverflow.com">Stack Overflow</a> 

는 놀랍게도 URL이 생성 원 앵커 링크에서 마우스를 가져 가면 [IP address]/www.stackoverflow.com 또는 [domain name]/www.stackoverflow.com으로 작성됩니다.

그러나 www 접두어를 사용하지 않고 http:// 프로토콜을 추가하면 절대 경로가 올바르게 렌더링됩니다.

내가 대신 단지 www가 접두사를 사용하여 절대 URL 경로에 http 프로토콜을 지정 결론 :

<a href="http://www.domain.com"> blabla </a> 

또는 사이트 루트 하이퍼 링크는 다음과 같이 Html.ActionLink를 사용 만들려면 :

@Html.ActionLink("blabla", "Index", "Home") 

또는 일반 앵커 태그 사용

<a href="@Url.Action("Index", "Home")">blabla</a> 

IMHO, 면도기보기 ENG를 URL 프로토콜을 지정하지 않으면 컨트롤러 이름으로 앵커 태그의 href 속성 안의 URL 문자열을 사이트 루트 IP/도메인 아래의 컨트롤러 이름으로 처리 할 수 ​​있으므로 컨트롤러 이름과 외부 절대 URL 경로를 구별하기 위해 HTTP 접두사가 필요합니다.

모든 의견을 환영합니다.

+0

늦게 답장을 드려 죄송합니다. 이 일을, 감사합니다 :) – Robin

관련 문제