Pages : 1
#1 Le 12/02/2014, à 22:12
- gody
[Résolu] - Redirection apache2 avec condition
Bonjour à tous,
Je cherche à faire des redirections pour un site.
Du port 80 (HTTP) vers 443 (HTTPS) mais je souhaite exclure la page d'accueil.
J'ai essayé :
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/fr/accueil$
RewriteCond %{REQUEST_FILENAME} !^index.php$
RewriteRule ^(.*)$ https://www.mon-site.com%{REQUEST_URI} [L,R=301]
J'ai également essayé:
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^fr/accueil$
RewriteCond %{REQUEST_FILENAME} !^index.php$
RewriteRule ^(.*)$ https://www.mon-site.com/$1 [R=301,L]
mais l'un comme l'autre ne fonctionne pas
Pourquoi je souhaite faire ça.
Simplement parce que sur la page d'accueil sont appelés des scripts externe (widget météo et autre ...) qui sont bloqués si le site est entièrement sous SSL.
Merci
Cédric
Dernière modification par gody (Le 14/02/2014, à 14:08)
Hors ligne
#2 Le 13/02/2014, à 07:57
- bruno
Re : [Résolu] - Redirection apache2 avec condition
Bonjour,
Elles sont placées où tes directives ? Le fonctionnement des réécritures diffère légèrement suivant le contexte (virtualhost, directory, htaccess).
Avec ce que tu veux faire il faut placer ces directives dans la configuration de l'hôte virtuel qui gère les connexions http (port 80).
#3 Le 13/02/2014, à 08:31
- tiramiseb
Re : [Résolu] - Redirection apache2 avec condition
Salut,
Je ne vois pas la ligne suivante dans les configurations que tu montres :
RewriteEngine on
Mais bon vu que tu ne nous montres pas la vraie configuration de ton serveur, je ne sais pas s'il s'agit d'un oubli de ta part ou si tu as décidé de nous la cacher...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 13/02/2014, à 14:30
- gody
Re : [Résolu] - Redirection apache2 avec condition
Bonjour,
Il s'agit du fichier .htacess (drupal).
J'ai ajouter quelques RewriteRule pour rediriger les anciennes pages vers les pages correspondantes.
Voici le fichier quasi complet:
#...
#
# Configuration php
#
#...
RewriteEngine on
RewriteRule "(^|/)\." - [F]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
###########
#Test redirection !
#
# Redirection des pages non sécurisée (comprenant tous les sous domaines) vers https
# RewriteCond %{HTTPS} !=on
# RewriteCond %{REQUEST_URI} !^/fr/accueil$
# RewriteCond %{REQUEST_FILENAME} !^index.php$
# RewriteRule ^(.*)$ https://www.mon-site.com%{REQUEST_URI} [L,R=301]
# RewriteCond %{SERVER_PORT} 80
# RewriteCond %{REQUEST_URI} !^fr/accueil$ [OR]
# RewriteCond %{REQUEST_FILENAME} !^index.php$
# RewriteRule ^(.*)$ https://www.mon-site.com/$1 [R,L]
############
# Redirection des pages de l'ancien site vers le nouveau
RewriteRule ^introfranc.html$ /fr/accueil [L,R=301]
RewriteRule ^heberge_introf.htm$ /fr/petite_maison [L,R=301]
RewriteRule ^restof.htm$ /fr/restaurant [L,R=301]
RewriteRule ^histof.htm$ /fr/auberge [L,R=301]
RewriteRule ^calendrierf.htm$ /fr/contact [L,R=301]
RewriteRule ^tarifsf.htm$ /fr/tarifs [L,R=301]
RewriteRule ^packages_f.htm$ /fr/tarifs [L,R=301]
RewriteRule ^albumf.htm$ /fr/album [L,R=301]
RewriteRule ^certificat_fr.htm$ /fr/certificats [L,R=301]
RewriteRule ^introang.html$ /en/home [L,R=301]
RewriteRule ^restoa.htm$ /en/restaurant [L,R=301]
RewriteRule ^albuma.htm$ /en/album [L,R=301]
RewriteRule ^tarifsa.htm$ /en/rates [L,R=301]
RewriteRule ^packages_a.htm$ /en/rates [L,R=301]
RewriteRule ^calendriera.htm$ /en/contact [L,R=301]
RewriteRule ^histoa.htm$ /en/little_house [L,R=301]
RewriteRule ^heberge_introa.htm$ /en/inn [L,R=301]
RewriteRule ^certificat_en.htm$ /en/certificates [L,R=301]
# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
<IfModule mod_headers.c>
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
<FilesMatch "(\.js\.gz|\.css\.gz)$">
# Serve correct encoding type.
Header set Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
Hors ligne
#5 Le 13/02/2014, à 15:24
- tiramiseb
Re : [Résolu] - Redirection apache2 avec condition
D'une part je déconseille d'utiliser.htaccess : il est préférable d'utiliser la configuration d'Apache2.
Voir là pourquoi : http://www.tiramiseb.fr/2014/02/01/apac … -htaccess/
De plus, de cette manière tu pourras faire beaucoup plus simple et mettre séparément la configuration en HTTP et la configuration en HTTPS (dans deux vhosts différents)...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#6 Le 13/02/2014, à 16:00
- bruno
Re : [Résolu] - Redirection apache2 avec condition
En plus des bons conseils de tiramiseb
Je dirais que tes règles ne peuvent pas fonctionner car elles entrent en conflit avec celles déjà présentes, notamment celle qui supprime 'index.php' des URL. Du coup cela risque de na pas être simple à mettre en place.
#7 Le 13/02/2014, à 19:27
- gody
Re : [Résolu] - Redirection apache2 avec condition
Hello,
Merci pour vos réponses.
J'ai beau essayer en configurant directement le vhost mais je n'y arrive pas. -_-
Edit: c'est beau en passant via mes vhost ça fonctionne! Merci
Dernière modification par gody (Le 14/02/2014, à 14:07)
Hors ligne
Pages : 1