2009-02-19 9 views
10

Je développe un certain nombre de formulaires qui ne devraient être accessibles que via https. J'ai un serveur dédié avec son propre certificat et toutes les bonnes choses.Force https pour l'ensemble du serveur/domaine

Donc ma question est deux fois vraiment:

1). Quelle est la meilleure façon de forcer chaque requête à être https? Existe-t-il un meilleur moyen que cette règle .htacess/mod_rewrite:

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

2). Y a-t-il des pièges potentiels ou des inconvénients à forcer tout ce que je devrais penser de https (autre que les frais généraux, ce qui ne semble pas être un problème de toute façon)?

Répondre

13

Ce que vous avez devrait être bien, voici ce que j'utilise:

RewriteCond %{HTTPS} !=on 
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] 

Le R signifie qu'il est une redirection au lieu d'une ré-écriture et le L indique que le moteur de réécriture ne doit pas effectuer d'autres réécritures.

Je l'origine trouvé ce ici: Httpd Wiki

Edit:

J'ai oublié de mentionner la directive SSLRequireSSL qui oblige toutes les demandes à plus HTTPS. Les détails peuvent être trouvés dans le Apache Documentation.

+0

Pour une raison quelconque, sur ma configuration, votre méthode ne fonctionne pas alors que 'mine' le fait. Une idée pourquoi? Aussi, merci ou l'astuce sur SSLRequireSSL, mais je crois comprendre que les requêtes non-https vont rebondir ce qui n'est pas ce que je veux dans ce cas. – da5id

+0

Intéressant, quelle version d'Apache utilisez-vous? –

+0

Apache/2.2.3 (CentOS) – da5id