Come forzare example.com a essere reindirizzato su www.example.com con la riscrittura dell'URL in IIS7? Che tipo di regola dovrebbe andare in web.config? Grazie.Riscritto URL IIS7 - Aggiungi prefisso "www"
risposta
Si tratta di esempio di Microsoft per URL Rewrite Module 2.0 che reindirizza * .fabrikam.com a 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>
Non sono sicuro circa il modo migliore per fare questo, ma ho un sito con tutti i vecchi domini/sottodomini che eseguono questo 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>
sembra ottenere il lavoro fatto.
Questo non solo reindirizza automaticamente ogni richiesta che arriva al tuo server? Mi aspetterei che i tuoi clienti, se ispezionassero il loro traffico, vedessero un 301 per ogni richiesta. – LeRoy
circa un anno di ritardo per rispondere al tuo commento, ma ho una sola app per www.targetsite.com, e un'altra applicazione che risponde ai domini che voglio inoltrare. se un'applicazione ospita entrambi, è ovviamente necessario avere una condizione. – Sciolist
Per renderlo più generico è possibile utilizzare seguente regola URL Rewrite, che lavora per qualsiasi dominio:
<?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>
Funziona finché non si dispone di sottodomini. – jpkeisala
non sono sicuro se questo aiuta, ma ho scelto di fare questo a livello di applicazione. Ecco un rapido filtro azione che ho scritto per fare questo .. Aggiungi semplicemente la classe da qualche parte nel tuo progetto, quindi puoi aggiungere [RequiresWwww] a una singola azione o a un intero controller.
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);
}
}
Poi
[RequiresWwww]
public ActionResult AGreatAction()
{
...
}
o
[RequiresWwww]
public class HomeController : BaseAppController
{
..
..
}
Speranza che aiuta qualcuno. Saluti!
Sono sicuro che questo funziona, ma il problema è che se si deve disattivare SSL da IIS, beh, non è possibile. Questo per me è richiesto per ottenere un nuovo certificato da criptare per esempio, basta una rapida riscrittura per disattivare, ottenere certificati, riaccendere. In questo modo ho bisogno di ripubblicare. Questo non è affatto polimorfico e considerato una cattiva pratica. – ppumkin
- 1. Riscritto URL con Joomla su IIS7
- 2. URL PHP Riscritto
- 3. Rimuovere Prefisso URL da String (http: /, www, ecc)
- 4. Riscritto URL IIS - con più domini
- 5. Riscritto URL da /default.aspx a/
- 6. Acquisizione di un valore in un cookie mediante Riscritto URL per IIS7
- 7. Riscritto Url IIS7 - Posso usare stopProcessing = "false" con una regola di reindirizzamento?
- 8. prefisso $ http url
- 9. Come reindirizzare gli URL non www a www utilizzando htaccess?
- 10. Host statico Amazon S3 con DNS Namecheap - Come instradare correttamente URL prefisso non www
- 11. Aggiungi http: // www. nel testo se non esiste
- 12. gli URL prefisso applicazione Rails
- 13. Prefisso URL Nginx non valido
- 14. "URL con WWW e URL senza WWW": c'è qualche differenza tra loro?
- 15. Come reindirizzare con URL "www" a senza URL "www" o viceversa?
- 16. Riscritto URL IIS: 403 - Accesso negato: accesso negato
- 17. Come reindirizzare dominio con prefisso www in AWS percorso 53
- 18. URL Riscrivi regole in uscita IIS7
- 19. Routing vs Url Rewrite (IIS7) Prestazioni
- 20. Impossibile rimuovere una riscrittura URL IIS7
- 21. Reindirizza le richieste non www agli URL URL in Rails
- 22. Aggiungi prefisso "b" alla variabile python?
- 23. URL Riscrivi per rimuovere www e reindirizzare a https utilizzando web-config (C# .net)
- 24. Rimuovi "api" prefisso dal Web API URL
- 25. Django: prefisso URL a livello di sito
- 26. Siti www e non www
- 27. NGINX - Ritorno 301 vs Riscritto
- 28. Come reindirizzare dinamicamente gli URL www-based a URL non www con più domini nella stessa VirtualHost
- 29. Modulo di riscrittura di Microsoft - Forza www su URL o rimuovi www dall'URL
- 30. Url ASP.NET/IIS7 Riscrivere le mappe non funzionanti
duplicato di http://stackoverflow.com/questions/1476934/forwarding-http-mydomain-com-ctrlr-act-val-to-http-www-mydomain-com-ctrlr-act/1476986#1476986 –
Perché deve essere la riscrittura dell'URL? Perché non l'approccio tradizionale: creare un host virtuale associato a 'example.com' che fornisce un semplice 'Reindirizzamento HTTP' a' http: // www.example.com/'(con codice di stato 301 e senza 'destinazione esatta) 'opzione, quindi il percorso rimane intatto). – bobince
Credo che sia più logico includere questo comportamento all'interno dell'applicazione stessa, piuttosto che crearne un altro per supportarlo. Ma altrimenti probabilmente non c'è alcuna differenza, o c'è? – niaher