c'est encore une autre question .htaccess. Et j'ai déjà fait ma revue de littérature. Apprécierait toute aide.htaccess (https à http)
Exigences:
- HTTPS force seulement pour quelques URL.
- Le navigateur ne doit pas indiquer page partiellement chiffrée pour les pages SSL.
J'utilise CodeIgnitor et peaufiné le base_url dans config.php à:
$config['base_url'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://' ;
$config['base_url'] .= $_SERVER['HTTP_HOST'];
$config['base_url'] .= preg_replace('@/[email protected]','',dirname($_SERVER['SCRIPT_NAME'])).'/';
Ainsi, si une URL est accessible avec https: // tous les liens contenus dans ce serait également sur HTTPS c'est d'éviter les "pages partiellement chiffrées".
J'ai commencé avec le code htaccess suivant:
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
Avec cette toute URL ayant abc, xyz ou pqr seront redirigés vers HTTPS et toute URL ne pas l'avoir sera de retour forcé à HTTP.
Cela a bien fonctionné, le seul problème avec ceci est qu'il n'est pas capable d'éviter le problème de "page partiellement chiffrée". Par exemple si je vais pour l'URL http://www.example.com/abc/index.php, il sera redirigé vers https://www.example.com/abc/index.php. Mais les liens sur cette page disent https://www.example.com/images/logo.png, sera changé en HTTP à cause de la dernière règle de réécriture. Ainsi, la page est partiellement cryptée.
J'ai également essayé d'ajouter http_referer vérifier comme ceci pour résoudre ce problème, mais évidemment cela ne résoudra pas le problème. Car les clics provenant d'une page HTTPS ne seraient jamais convertis en HTTP.
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_REFERER} !^(https)(.*)$
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
Je veux juste savoir s'il y a une meilleure approche disponible pour ce problème simple ou si je le fais dans le mauvais sens. Est-ce que l'utilisation de crochets CI au lieu de .htaccess résoudra cela?
Merci à l'avance
im juste demander .. Pourquoi diable ne laissez-vous pas les informations des utilisateurs restent privés? – TheCrazyProfessor