Wie erzwingen example.com umgeleitet werden zu www.example.com mit URL-Umschreiben in IIS7? Welche Art von Regel sollte in die web.config gehen? Vielen Dank.IIS7 URL Rewrite - Hinzufügen "www" Präfix
Antwort
Dies ist ein Beispiel von Microsoft für URL Rewrite Module 2.0 die * leitet .fabrikam.com zu www.fabrikam.com
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Add www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.fabrikam.com" negate="true" />
</conditions>
<action type="Redirect" url="http://www.fabrikam.com/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Nicht sicher über die beste Art und Weise, dies zu tun, aber ich habe eine Seite mit allen alten Domains/Subdomains laufen diese web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Transfer" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="http://www.targetsite.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
scheint die Arbeit zu erledigen.
Würde dies nicht automatisch jede Anfrage umleiten, die auf Ihren Server kommt? Ich würde erwarten, dass Ihre Kunden, wenn sie ihren Verkehr überprüfen, eine 301 für jede Anfrage sehen. – LeRoy
etwa ein Jahr zu spät, um Ihren Kommentar zu beantworten, aber ich habe eine iis App für www.targetsite.com, und eine andere Anwendung, die alle Domänen beantwortet, die ich weitergeleitet möchte. Wenn eine Anwendung beide hostet, ist es natürlich notwendig, eine Bedingung zu haben. – Sciolist
Um es generic Sie folgende URL Rewrite-Regel verwenden können, die für jede Domain arbeiten:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Add WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)$" />
</conditions>
<action type="Redirect" url="http://www.{C:0}{PATH_INFO}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
Funktioniert so lange, wie Sie keine Subdomains haben. – jpkeisala
ich bin nicht sicher, ob das hilft, aber ich entschied sich dies auf App-Ebene zu tun. Hier ist ein schneller Aktionsfilter, den ich dazu geschrieben habe. Fügen Sie die Klasse einfach irgendwo in Ihrem Projekt hinzu, und fügen Sie [RequiresWwww] zu einer einzelnen Aktion oder einem gesamten Controller hinzu.
public class RequiresWww : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase req = filterContext.HttpContext.Request;
HttpResponseBase res = filterContext.HttpContext.Response;
//IsLocal and IsLoopback i'm not too sure on the differences here, but I have both to eliminate local dev conditions.
if (!req.IsLocal && !req.Url.Host.StartsWith("www") && !req.Url.IsLoopback)
{
var builder = new UriBuilder(req.Url)
{
Host = "www." + req.Url.Host
};
res.Redirect(builder.Uri.ToString());
}
base.OnActionExecuting(filterContext);
}
}
Dann
[RequiresWwww]
public ActionResult AGreatAction()
{
...
}
oder
[RequiresWwww]
public class HomeController : BaseAppController
{
..
..
}
Hoffnung, dass jemand hilft. Prost!
Bin sicher, das funktioniert, aber die sucky Problem mit diesem ist, dass, wenn Sie SSL von IIS deaktivieren müssen .. naja .. Sie können nicht. Dies ist für mich erforderlich, um ein neues Zertifikat zu erhalten, indem wir zum Beispiel verschlüsseln, nur ein schnelles Neuschreiben ausschalten, Zertifikate erhalten, wieder einschalten. Auf diese Weise muss ich neu veröffentlichen. Dies ist überhaupt nicht sehr polymorph und wird als schlechte Praxis angesehen. – ppumkin
- 1. Nginx Rewrite nicht-www-Präfix-Domain www-Präfix Domain
- 2. IIS7 URL Rewrite Regular Expression
- 3. URL Rewrite Outbound Rules IIS7
- 4. Einfache IIS7 Url Rewrite funktioniert nicht
- 5. ASP.NET/IIS7 Url Rewrite Karten funktioniert nicht
- 6. URL Rewrite auf IIS7 für Wordpress
- 7. URL Rewrite mit Joomla auf IIS7
- 8. Latenz mit www Präfix
- 9. IIS Rewrite - Hinzufügen von WWW, aber nicht zu Subdomains
- 10. Verschieben IIS7 URL Rewrite-Abschnitt aus der Datei web.config
- 11. Meine IIS7 URL Rewrite-Regeln verschwinden immer wieder
- 12. entfernen URL Präfix von String (http:/www, etc.)
- 13. URL Rewrite Problem in IIS MOD REWRITE
- 14. URL Rewriting IIS7
- 15. URL hinzufügen Präfix auf Anfragen mit nginx oder Schienen
- 16. URL umleiten ohne www www
- 17. Rewrite-URL url: Portnummer
- 18. Wie man Wordpress Pretty Permalink auf freigegebenen IIS7-Hosting mit keine URL-Rewrite-Modul installiert
- 19. Code Igniter - URL Rewrite
- 20. Skalierbare URL-Rewrite-Regel
- 21. Microsoft ReWriting-Modul - Force www auf URL Oder entfernen Sie www von URL
- 22. URL mit www verursacht 404 in IIS
- 23. Umleiten von nicht www URL zu www mit .htaccess
- 24. wie www url zu non-www url mit htaccess umleiten?
- 25. Tricky URL Rewrite, Regex .htaccess
- 26. URL Rewrite Fehler mit Web-Anwendungen
- 27. Umleiten zu www in IIS7 - klassische Pipeline-Modus
- 28. Rewrite url mod Rewrite ohne Umleitung mit
- 29. Regex entfernen www von URL
- 30. Präfix $ http URL
duplizieren von http://stackoverflow.com/questions/1476934/forwarding-http-mydomain-com-ctrlr-act-val-to-http-www-mydomain-c-ctrlr-act/1476986#1476986 –
Warum Muss das URL-Rewriting sein? Warum nicht der traditionelle Ansatz: Erstelle einen virtuellen Host, der an 'example.com' gebunden ist, was eine einfache 'HTTP Redirect' zu 'http: // www.example.com /' (mit 301 Statuscode und ohne' genaues Ziel) gibt Option, damit der Pfad intakt bleibt. – bobince
Ich glaube, es ist logischer, dieses Verhalten in die Anwendung selbst aufzunehmen, anstatt ein anderes zu erstellen, um es zu unterstützen. Aber sonst gibt es wahrscheinlich keinen Unterschied oder gibt es? – niaher