Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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...

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)...

Hors ligne

#6 Le 13/02/2014, à 16:00

bruno

Re : [Résolu] - Redirection apache2 avec condition

En plus des bons conseils de tiramiseb smile
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 smile

Dernière modification par gody (Le 14/02/2014, à 14:07)

Hors ligne