2016-08-31 3 views
1

Ich habe ein ASP.NET MVC 5-Projekt, das mit IIS7 gehostet wird.IIS fügt Domäne zu Website-URL hinzu

In einer Produktseite Ich habe diesen Code:

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

Es auf DomainX oder ipx gehostet wird. Jetzt, wenn ich auf die Seite blättern und über die URL dort schweben, zeigt es mir, dass es auf www.domainx.com/www.domain.com geht. Wenn ich die IP benutze, ist es dasselbe, aber stattdessen wird die URL der IP vorangestellt.

Was verursacht dies und/oder wie kann ich es stoppen/verhindern?

Antwort

2

ich Ihr Problem in einem Beispielprojekt reproduziert hatte SO als Anker Hyperlink auf Index-Seite (Views/Home/Index.cshtml) verwendet wird, ändert http:// Protokoll nur www:

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

Überraschenderweise ist die URL generiert am Indexseite, wenn der Mauszeiger auf dem Ankerlink liegt, der als [IP address]/www.stackoverflow.com oder [domain name]/www.stackoverflow.com geschrieben ist.

Wenn jedoch http:// Protokoll ohne Verwendung von WWW-Präfix hinzugefügt wurde, der absolute Pfad gerendert, um SO-URL zu korrigieren.

schloss ich, dass statt nur Präfix www, http-Protokoll auf Ihrem absoluten URL-Pfad angeben:

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

oder wenn Sie möchten, dass Ihre Website root Hyperlink Html.ActionLink wie diesen erstellen:

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

oder einfachen Anker-Tag verwenden:

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

IMHO, Razor Ansicht ger Ine kann die URL-Zeichenfolge innerhalb des href Attributs der Anchor-Tags als Controller-Name unter Site-Stamm-IP/Domäne behandeln, wenn das URL-Protokoll nicht angegeben ist. Daher ist das HTTP-Präfix erforderlich, um zwischen Controllername und externem absoluten URL-Pfad zu unterscheiden.

Alle Vorschläge willkommen.

+0

Entschuldigung für die späte Antwort. das hat funktioniert, danke :) – Robin