254 votes

Comment faire pour forcer le HTTPS à l'aide d'un site web.fichier de configuration

J'ai cherché dans Google et StackOverflow essayer de trouver une solution à ce problème, mais ils semblent tous se rapportent à ASP.NET etc.

J'ai l'habitude de faire tourner Linux sur mes serveurs, mais pour un client, je suis à l'aide de Windows avec IIS 7.5 (et parallels Plesk panel 10). C'est la raison pour laquelle je suis légèrement familier avec IIS et web.config fichiers. Dans un .htaccess fichier, vous pouvez utiliser la réécriture conditions pour détecter si le protocole HTTPS et rediriger en conséquence. Est-il un moyen simple d'y parvenir en utilisant un site web.fichier de config, ou même à l'aide de la"Réécriture d'URL"module que j'ai installé?

J'ai pas d'expérience avec ASP.NET donc, si cela est impliqué dans la solution alors s'il vous plaît inclure des étapes claires de façon à mettre en œuvre.

La raison pour moi de le faire avec le web.config et pas de PHP, c'est que je voudrais forcer le HTTPS sur tous les actifs à l'intérieur du site.

502voto

LazyOne Points 25070

Vous avez besoin de module de Réécriture d'URL, de préférence v2 (je n'ai pas de v1 installé, donc ne peut pas garantir qu'il fonctionnera, mais il devrait).

Voici un exemple d'un tel site web.config -- il va forcer le HTTPS pour TOUTES les ressources (à l'aide 301 Redirection Permanente):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <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>
</configuration>

P. S. Il n'a rien à voir avec ASP.NET

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X