Réécriture d'URL sur un site mais pas sur l'autre

0

Nous avons notre propre domaine et plusieurs sous-domaines. L'un des sites doit être accessible uniquement via SSL, mais les utilisateurs sont autorisés à taper http et y arrivent quand même. L'URL-Rewrite force le http dans https.

Donc, mes deux sous-domaines sont: sub1.domain.orget sub2.domain.org.

Donc, si je tape

http://sub1.domain.org/page_on_domain1

il est réécrit pour

https://sub1.domain.org/page_on_domain1

-qui est correct. Mais si je fais cela (ce qui n'est pas possible - page_on_domain1n'existe pas sur sub2.domain.org:

https://sub2.domain.org/page_on_domain1

Ma règle de réécriture d'url semble fonctionner correctement, mais je veux que cette dernière adresse me donne une page d'erreur, car la page n'existe pas sur ce sous-domaine.

Je teste cela dans Firefox sur Windows 7 x64 Pro.

Ma règle de réécriture d'URL est la suivante (je le fais via l'interface graphique IIS7):

Requested URL:  Matches the Pattern:  (*)  Using Regular Expressions (ignore case)
Conditions:  Match All:  Input:  {HTTPS}  Matches the Pattern:  ^Off$
Redirect URL:  https://sub1.domain.org/{REQUEST_URI}

Maintenant, j'ai essayé de changer le modèle d'URL demandé en: .*sub1.domain.org/.*mais le testeur de regex dans IIS7 indique qu'il ne correspond pas https://sub1.domain.org - je ne comprends pas cela.

Comment puis-je conserver la réécriture de http en https pour sub1.domain.org, mais sans aucun effet sur sub2.domain.org?

bgmCoder
la source

Réponses:

0

Dans le fichier web.config du site particulier sur lequel je veux être accédé httpset httpréécrit http, j'ai défini ceci:

<rewrite>
  <rules>
    <rule name="Redirect to HTTPS" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
bgmCoder
la source