62 messaggi dal 12 febbraio 2016
Buongiorno a tutti, ho un dominio su aruba e dopo aver installato il certificato di sicurezza per l'https ho scritto questo codice nel web.config per effettuare il redirect in maniera automatica (da http://www... a https://www...):

  <system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="Redirect to https" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>


Il redirect funziona benissimo solo che mentre navigo sul sito web perdo il "www", ottengo sempre un indirizzo tipo: https://nomedominio.it
Da cosa dipende? Come faccio a far rimanere anche il www?
Grazie
11.071 messaggi dal 09 febbraio 2002
Contributi
Ciao Piero,
la regola che stai usando preserva il nome host che era stato digitato dall'utente.
Per esempio, se apro una nuova tab nel browser e scrivo "nomesito.it", verrò reindirizzato su "nomesito.it" con protocollo HTTPS.
Allo stesso modo, se digito "www.nomesito.it", verrò reindirizzato su "www.nomesito.it" con protocollo HTTPS. Ti risulta?

Tu vuoi forzare la ridirezione verso il nome host "www.nomesito.it" anche se l'utente aveva digitato "nomesito.it"?

ciao,
Moreno

Enjoy learning and just keep making
62 messaggi dal 12 febbraio 2016
BrightSoul ha scritto:

Allo stesso modo, se digito "www.nomesito.it", verrò reindirizzato su "www.nomesito.it" con protocollo HTTPS. Ti risulta?

Si esatto, veramente mi sono accorto ora di questo, grazie!


Tu vuoi forzare la ridirezione verso il nome host "www.nomesito.it" anche se l'utente aveva digitato "nomesito.it"?

A questo punto forse non avrei bisogno perché anche se condivido l'url con il www questo funziona comunque. Al max potrebbe servirmi a livello SEO.

Come potrei forzare il redirect con il www?
11.071 messaggi dal 09 febbraio 2002
Contributi

Come potrei forzare il redirect con il www?


La soluzione più facile è questa: anziché usare il segnaposto {HTTP_HOST}, usa direttamente www.nomesito.it.

 <system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="Redirect to https" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://www.nomesito.it{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>



Però, se il tuo sito deve essere raggiungibile da vari nomi host, bisogna usare una soluzione più raffinata.

ciao,
Moreno

Enjoy learning and just keep making
62 messaggi dal 12 febbraio 2016

Però, se il tuo sito deve essere raggiungibile da vari nomi host, bisogna usare una soluzione più raffinata.


Cosa intendi per vari nomi host? Il sito web è sempre uno: www.nomesito.it
11.071 messaggi dal 09 febbraio 2002
Contributi
Alcune applicazioni web, specialmente quelle multitenant (cioè che offrono un servizio a svariati clienti) hanno come requisito quello di essere raggiungibili con vari nomi host, come ad esempio www.nomesito.it, www.nomesito.com, app.dominiotenant.it, altrodominio.it, e così via. Il nome host con cui si raggiunge l'applicazione web è di solito una discriminante sui contenuti da visualizzare.

Dato che non è questo il tuo caso, la soluzione che ti ho postato andrà bene.
Modificato da BrightSoul il 31 agosto 2018 08.52 -

Enjoy learning and just keep making
62 messaggi dal 12 febbraio 2016
Scusami Moreno se riprendo la discussione ma il secondo codice che mi hai suggerito non va, praticamente non viene forzato il redirect al dominio wwww.
A me servirebbe effettuare il redirect da http a https e da dominio.xx a www.dominio.xx
11.071 messaggi dal 09 febbraio 2002
Contributi
Ciao,
la regola che ti ho fornito già copre già questi casi:

Se l'utente scrive http://www.nomesito.it/ viene reindirizzato verso https://www.nomesito.it/
Se l'utente scrive http://nomesito.it/ viene reindirizzato https://www.nomesito.it/

L'unico caso che non copre è questo:

Se l'utente scrive https://nomesito.it/ al momento NON viene reindirizzato a https://www.nomesito.it

Quindi si può integrare la regola aggiungendo una ulteriore condizione. Grazie a logicalGrouping="MatchAny", la ridirezione si verificherà quando almeno una delle due condizioni è vera, cioè sia che l'utente arrivi su http e sia che l'utente manchi di scrivere www.

<system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="Redirect to https" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAny">
                        <add input="{HTTPS}" pattern="off" />
                        <add input="{HTTP_HOST}" pattern="^www\." negate="true" />
          </conditions>
          <action type="Redirect" url="https://www.nomesito.it{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>
</system.webServer>


Se non funziona ancora, vuol dire che manca qualche binding sul tuo sito IIS. Il sito deve essere raggiungibile sia con che senza www e sia su http che su https. Quindi verifica di aver creato questi 4 binding.

nomesito.it su porta 80 (http)
nomesito.it su porta 443 (https)
www.nomesito.it su porta 80 (http)
www.nomesito.it su porta 443 (https)

Ovviamente anche il DNS deve essere stato configurato affinché i nomi nomesito.it e www.nomesito.it si risolvano con l'indirizzo IP del tuo server.

ciao,
Moreno
Modificato da BrightSoul il 04 novembre 2018 12.57 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.