Reindirizzare l'URL del sottodominio a un altro sottodominio in IIS
-
02-01-2020 - |
Domanda
Devo reindirizzare un sottodominio "falso" a un sottodominio reale in IIS 7.5.Il motivo è che il reparto marketing non vuole utilizzare l'effettivo indirizzo del sito web nei pezzi stampati.
URL effettivo del sito:
reporting.usapartners.com
Il reparto marketing vuolereport.usapartners.com (falso) a reindirizzare a reporting.usapartners.com (reale)
Ancora una volta, report.usapartners.com non esiste, esiste solo reporting.usapartners.com
Ecco cosa ho provato
Ho aggiunto un'associazione in IIS, per il sito reporting.usapartners.com.Ho aggiunto report.usapartners.com come nome host e ho utilizzato l'indirizzo IP reporting.usapartners.com
Poi sono andato su reporting.usapartners.com web.config e ho aggiunto questo:
<rewrite>
<rules>
<rule name="report" stopProcessing="true">
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="report.usapartners.com" negate="false" />
</conditions>
<action type="Redirect" url="http://reporting.usapartners.com" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Sembra che la mia soluzione crei un alias a cui non è possibile reindirizzare.
Sto affrontando correttamente questo problema?Sembra che dovrebbe essere un problema semplice da risolvere ma forse no?Qualsiasi idea è accolta e apprezzata.
Grazie
Soluzione
Penso che sia necessario creare un sito separato con collegamenti host per report.usapartners.com
(il sito falso) in IIS.Questo sarà un sito stub (avrà comunque bisogno di un percorso sul disco, ma avrà solo un web.config
lì) che ospiterà semplicemente una regola di reindirizzamento.
Ora fai clic su HTTP Redirect
per quel sito in IIS e seleziona Redirect requests to this destination
e metti http://reporting.usapartners.com
nella casella di testo.Quindi spunta Redirect all requests to exact destination (instead of relative to destination)
, non selezionare quello successivo e quindi scegli Codice di stato Permanent (301)
.
Se vuoi che reindirizzi e mantenga le sottodirectory e/o la stringa di query, puoi modificare il contenuto della casella di testo in modo che sia http://reporting.usapartners.com$S$Q
.Tieni presente che in questo caso non è presente alcuna barra finale.IL $S
conserva le sottodirectory e il file $Q
conserva la stringa di query.
Altri suggerimenti
La tua regola sta causando un loop di reindirizzamento.
Osserva ciò che la tua regola fa:
- .
- Abbina qualsiasi URL dato (questo include "/", "/ qualcosa", "/something/arother.html", ecc.)
- Se il nome host non è "report.usapartners.com"
- Reindirizza permanentemente la richiesta di " http://reporting.usapartners.com >
Così, come vedi, non appena l'utente viene reindirizzato al sottodominio di reporting, viene reindirizzato di nuovo alla segnalazione, poiché hostname non è "report.usapartners.com".
La chiave qui è l'attributo negate="true"
sulla condizione della regola. Rimuovilo o impostalo su falso e sei a posto.
Modifica:
Sei quasi lì.
La soluzione reale sarebbe cambiare il nome host sulla regola sull'host desiderato, mantenendo il negativo vero, quindi la tua regola farebbe:
- Abbina qualsiasi URL dato (questo include "/", "/ qualcosa", "/something/arother.html", ecc.)
- Se il nome host non è "reporting.USApartners.com"
- Reindirizza permanentemente la richiesta di " http://reporting.usapartners.com >
Codice:
...
<add input="{HTTP_HOST}" pattern="reporting.usapartners.com" negate="true" />
...
.