# +----------------------------------------------------------------------+
# | Copyright (c) 2004-2021 Advisto SAS, service PEEL - contact@peel.fr  |
# +----------------------------------------------------------------------+
# | This file is part of PEEL Shopping 9.4.0, which is subject to an	 |
# | opensource GPL license: you are allowed to customize the code		 |
# | for your own needs, but must keep your changes under GPL			 |
# | More information: https://www.peel.fr/lire/licence-gpl-70.html		 |
# +----------------------------------------------------------------------+
# | Author: Advisto SAS, RCS 479 205 452, France, https://www.peel.fr/	 |
# +----------------------------------------------------------------------+
# $Id: .htaccess 66976 2021-05-25 10:19:15Z sdelaporte $
#
# DEBUT CONFIGURATION ###
# Configuration éventuellement nécessaire chez certains hébergeurs si votre hébergement n'est pas déjà en PHP5
#
#
# Configuration HSTS pour forcer l'utilisation de HTTPS, nécessite que tous les appels du site soient à 100% vers https://
# Configuration de test, désactivable en cas de problème
#Header always set Strict-Transport-Security "max-age=300; includeSubDomains" 
# Après tests poussés, activation définitive :
#Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" 
#
#
#
# - Chez OVH, activez les lignes suivantes en retirant le # en début de ligne :
# SetEnv PHP_VER 5
# SetEnv REGISTER_GLOBALS 0
# et activez aussi plus loin dans le fichier la ligne RewriteBase / ou /monrepertoiredesite/
#
# - Chez 1&1, activez les lignes suivantes en retirant le # en début de ligne :
# Options +FollowSymLinks
# RewriteBase / ou /monrepertoiredesite/ # présente et expliquée aussi plus loin dans le fichier
# ... et pour PHP 5 :
# AddType x-mapp-php5 .php
#   ou
# AddHandler x-mapp-php5 .php
#
# - Chez Free, plusieurs choses sont à faire : 
#   . Activez la ligne suivante en retirant le # en début de ligne (ce qui active PHP5) :
# php 1
#   . Supprimez les .htaccess des dossiers suivants : administrer/modeles/css/  administrer/modeles/  lib/js/ lib/css/ images/  upload/  modeles/peel9/  modeles/peel9/images/  modeles/peel9/css/ 
#   . Supprimez tout ce qui est après la ligne ErrorDocument 404 /search.php?type=error404 de ce document
#
# - Chez Aquaray, activez la ligne suivante en retirant le # en début de ligne :
# AddHandler php5 .php
#
# - Chez Lycos, activez la ligne suivante en retirant le # en début de ligne :
# AddHandler application/x-httpd-php5 .php
#
# - Chez Web1 / nFrance, activez la ligne suivante en retirant le # en début de ligne :
# AddHandler php-fastcgi5 .php
#
# - Chez Online.net, activez la ligne suivante en retirant le # en début de ligne :
# AddType application/x-httpd-php5 .php
#
# - Chez eXtend, activez la ligne suivante en retirant le # en début de ligne :
# SetEnv DEFAULT_PHP_VERSION 5
#
# - Chez Nuxit, activez les lignes suivantes en retirant le # en début de ligne :
# AddHandler x-httpd-php5 .php
# AddType application/x-httpd-php5 .php
# et activez aussi plus loin dans le fichier la ligne RewriteBase / ou /monrepertoiredesite/
#
# - Chez Produweb, activez les lignes suivantes en retirant le # en début de ligne :
# SetEnv DEFAULT_PHP_VERSION 5
#
# - Chez Infomaniak, activez PHP5 dans votre espace client et activez les lignes suivantes en retirant le # en début de ligne :
# php_flag allow_url_fopen On
# php_flag allow_url_include On
# php_flag register_globals Off
#
# - Chez Planet-work, activez la ligne suivante en retirant le # en début de ligne :
# AddHandler application/x-httpd-php5 .php
#
# - Chez Netissime, activez la ligne suivante en retirant le # en début de ligne :
# php_flag register_globals Off
#
# - Chez Amen, activez PHP5 dans votre espace client catégorie Langage supportés
#
# - Chez Godaddy, activez PHP5 dans votre espace client catégorie Languages
#
# - TOUT TYPE D'HEBERGEUR - A ACTIVER EN CAS DE CONFIGURATION DU SERVEUR INCOMPLETE 
# AddType video/ogg .ogv
# AddType video/ogg .ogg
# AddType video/mp4 .mp4
# AddType video/webm .webm
# AddType application/x-shockwave-flash swf

# Si lire/ par exemple ne marche pas alors que lire/index.php marche, alors activez :
# DirectoryIndex index.html index.php

# Gestion des 404
# Une erreur 404 est associé à une mauvaise recherche (désactivée par défaut).
# ATTENTION : configurez le ErrorDocument en précisant le bon chemin en cas d'installation dans un répertoire
# Le code est à adapter en cas de site multilingue.
# ErrorDocument 404 /monrepertoiredesite/search.php?type=error404
ErrorDocument 404 /search.php?type=error404

<FilesMatch "\.(gif|jpe?g|png|ico|xml|gz|zip|txt|js|css|map)$">
	ErrorDocument 404 default
</FilesMatch>
# Si on appelle http://lesite.com/http://unsite.com/image.png => comme http: n'est pas un répertoire existant, FilesMatch ne va pas prendre en compte la fin de l'URL => png$ ne marche pas
# Donc on fait une règle spécifique pour ce genre de cas
<FilesMatch "^http:">
	ErrorDocument 404 default
</FilesMatch>

# Exclure une IP : décommenter ce qui suit et mettre le début d'une IP (classe d'IP) ou une IP entière
# Deny from xxx.xxx.xxx.xxx

# Exclure un user-agent : décommenter ce qui suit
# SetEnvIfNoCase User-Agent "Excludeduseragent" bad_bot
# Deny from env=bad_bot

# Si le serveur ne compresse pas automatiquement les fichiers texte, décommenter ce qui suit
# Attention, ce n'est compatible que sur certains serveur et sinon cela mettra une erreur 500
# SetOutputFilter DEFLATE
# AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript

<Files ~ "403\.shtml$">
	Allow from all
</Files>

# FIN DE CONFIGURATION ###

# Interdit l'accès à des répertoires sans index
Options -Indexes

# Déclaration de l'encodage du contenu, notamment au cas où le serveur soit configuré en UTF8 par défaut
AddDefaultCharset UTF-8

# Interdire fichiers .htaccess et .htpasswd, info et configuration, et avec extensions exotiques
# dat| => On laisse ces fichiers car c'est le format des exports en comptabilité du logiciel API compta 8
<FilesMatch "\.(inc|tpl|h|ihtml|sql|ini|conf|class|bin|spd|theme|module|asa|log|bak|db|PHPEditBackup|htaccess|htpasswd)$">
	Deny from all
</FilesMatch>

<ifModule mod_headers.c>
	<FilesMatch "\.(flv|gif|GIF|jpg|jpeg|JPG|png|PNG|ico|swf|js|css|pdf|PDF|doc|docx|xls|xlsx|ppt|pptx|woff|woff2|eot|svg|ttf)$">
		# Mise en cache par le navigateur pendant 7j par défaut des images, CSS, Javascript.
		Header set Cache-Control "max-age=604800, public"
		Header set X-Content-Type-Options "nosniff"
	</FilesMatch>
	<FilesMatch "\.(ttf|otf|eot|woff)$">
		Header set Access-Control-Allow-Origin "*"
	</FilesMatch>
	<FilesMatch "(.*)-(banner|static)\.html$">
		# Mise en cache par le navigateur pendant 7j par défaut des bannières HTML
		Header set Cache-Control "max-age=604800, public"
	</FilesMatch>
</ifModule>

<IfModule mod_deflate.c>
	SetEnvIfNoCase Request_URI telechargement/download\.php$ no-gzip dont-vary
</ifModule>

<Files ~ "^\.ht">
	Order allow,deny
	Deny from all
</Files>
<Files ~ "info.inc.php$">
	Deny from all
</Files>
<Files ~ "configuration.inc.php$">
	Deny from all
</Files>

<IfModule mod_rewrite.c>
	# Toute la section des Rewrite[...] ne fonctionnera que si l'hébergement ne supporte pas l'URL Rewriting
	# Pour avoir PEEL Shopping utilisant l'URL Rewriting, vous devez installer le module Premium
	RewriteEngine on
	
	# CONFIGURATION : Sur certains hébergements (OVH, Amen, ...) il faut parfois configurer le RewriteBase en retirant le # en début de ligne
	# Attention : si vous n'êtes pas à la racine de votre domaine, indiquez /monrepertoiredesite/
	# RewriteBase /
	# ...ou... :
	# RewriteBase /monrepertoiredesite/

	# OPTIONNEL : REDIRECTION d'autres domaines
	# RewriteCond %{HTTP_HOST} !^www\.mydomain\.com
	# RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L]

	# DEBUT DE EDITION SUR MESURE
	# Redirection des demandes qui auraient dues être faites via un CDN
	# RewriteCond %{HTTP_HOST} !^cdn(.*)\.(.*)\.(.*)$
	# RewriteCond %{REQUEST_URI} ^(upload|icones|modeles/images)/(.*)$
	# RewriteRule ^(.*)$ http://cdn#######/$1 [R=301,L,QSA]
	# Redirection des demandes qui n'auraient pas dues être faites via un CDN
	# RewriteCond %{HTTP_HOST} ^cdn(.*)\.(.*)\.(.*)$
	# RewriteCond %{REQUEST_URI} !^(upload|icones|modeles/images)/(.*)$
	# RewriteRule ^(.*)$ http://www#######/$1 [R=301,L,QSA]
	# FIN DE EDITION SUR MESURE

	RewriteRule ^(images/|upload|icones|modeles/images)/ - [L]

	# Recuperer toutes les pages se terminant par .htm - à n'activer que si vous activez $GLOBALS['site_parameters']['enable_prefetch'] et n'avez pas de page statique en .htm sur votre site
	RewriteCond %{REQUEST_URI} !^/lib/(.*)$
	RewriteCond %{REQUEST_URI} !^lib/(.*)$
	RewriteRule (\.htm)$ prefetch.php [QSA,L]

	RewriteCond %{REQUEST_URI} !^/js/(.*)$
	RewriteCond %{REQUEST_URI} !^js/(.*)$
	RewriteRule ^([a-z]{2})/([a-z]{2})/(.*)$ /$1/$3 [QSA,L,R=301] 
	
	# Suivant les hébergements, il faut ou non laisser un / devant $2 dans la ligne suivante (bug apache sur certaines versions ?)
	# => A changer si vous modifiez RewriteBase ci-dessus, ou si vous avez un problème d'URL rewriting sur les répertoires virtuels de langue
	RewriteRule ^([a-z]{2})/(.*)$ /$2?langue=$1 [QSA,L]
	# RewriteRule ^([a-z]{2})/(.*)$ $2?langue=$1 [QSA,L]

	# Navigation sur RSS
	RewriteRule ^rss\.php$ modules/rss/rss.php [QSA,L]
	RewriteRule ^rss\.xml$  modules/rss/rss.php [QSA,L]
	RewriteRule ^(.*)rss-([0-9]+)\.xml$  modules/rss/rss.php?cat=$2 [QSA,L]

	# sitemap pour google et yahoo
	RewriteRule ^sitemap\.xml$ get_sitemap.php?file=sitemap [QSA,L]
	RewriteRule ^urllist\.txt$ get_sitemap.php?file=urllist [QSA,L]
	RewriteRule ^ascreen\.jpg$ get_sitemap.php?file=ascreen [L,QSA]
	
	RewriteRule ^(buy|comprar|kauf|acquisto|koop)/$ achat/index.php [QSA,L]
	RewriteRule ^(achat|buy|comprar|kauf|acquisto|koop)/cat-(.*)-([0-9]+)\.html$ achat/index.php?catid=$3 [QSA,L]
	RewriteRule ^(buy|comprar|kauf|acquisto|koop)/(.*)\.(.*)$ achat/$2.$3 [QSA,L]
	RewriteRule ^(lire|read|leer|lesen|lees)/(.*)-([0-9]+)/(.*)-([0-9]+)\.html$ lire/article_details.php?id=$5&rubid=$3 [QSA,L]
	RewriteRule ^(lire|read|leer|lesen|lees)/(.*)-([0-9]+)\.html$ lire/index.php?rubid=$3 [QSA,L]
	RewriteRule ^(lire|read|leer|lesen|lees)/$ lire/index.php [QSA,L]
	RewriteRule ^(.*)-([0-9]+)/(.*)-([0-9]+)\.html$ achat/produit_details.php?id=$4&catid=$2 [QSA,L]
	RewriteRule ^(lexique|lexicon|lexico|lexikon|lessico)/lettre-(.)\.html$ lexique/index.php?lettre=$2 [QSA,L]
	RewriteRule ^(lexique|lexicon|lexico|lexikon|lessico)/mot-(.*)-(.*)-([0-9]+)\.html$ lexique/index.php?lettre=$2&id=$4 [QSA,L]
	RewriteRule ^(lexicon|lexico|lexikon|lessico)/$ lexique/index.php [QSA,L]
	RewriteRule ^(dire-a-un-ami|tell-a-friend|haga-conocer-a-amigos|vertel-een-vriend)$ modules/direaunami/direaunami.php [L,QSA]
	RewriteRule ^(merk|marke|marca|marque|brand)/(.*)$ achat/marque.php?brand=$2 [QSA,L]
	
	# Si module d'annnonces, pour les pages de categories d'annonces	
	# RewriteRule ^([A-Z].*)-([0-9]+|rss)-([0-9]+)\.(html|xml)$ modules/annonces/index.php?catid=$3&page=$2 [L,QSA]
	# Si module d'annnonces, pour les pages de détail d'annonces
	# RewriteRule ^(.*)-([0-9]+)\.html$ modules/annonces/annonces_details.php?ref=$2 [L,QSA]
	# Annonces gold
	# RewriteRule ^(anuncio-gold|annonces-gold|gold-ads)$ modules/annonces/gold.php [L,QSA]
	
	# Si module vitrine
	# RewriteRule ^acheter/liste-grossiste-([0-9]+)\.html$ modules/vitrine/index.php?page=$1 [L,QSA]
	# RewriteRule ^comprar/lista-mayoristas-([0-9]+)\.html$ modules/vitrine/index.php?page=$1 [L,QSA]
	# RewriteRule ^buy/list-wholesaler-([0-9]+)\.html$ modules/vitrine/index.php?page=$1 [L,QSA]
	# RewriteRule ^acheter/annonceur-([0-9]+)\.html$ modules/vitrine/index.php?page=$1 [L,QSA]
	# RewriteRule ^comprar/lista-([0-9]+)\.html$ modules/vitrine/index.php?page=$1 [L,QSA]
	# RewriteRule ^buy/list-([0-9]+)\.html$ modules/vitrine/index.php?page=$1 [L,QSA]
	# RewriteRule ^(boutique)-(.+)\.html$ modules/vitrine/boutique.php?bt=$2 [L,QSA]

	RewriteRule ^expertcomptable$ /experts-comptables.htm [R=301,L]
	RewriteRule ^avocats$ /gestion-de-temps-avocats.htm [R=301,L]
	RewriteRule ^emailing/(.*)$ modules/temps2000/$1 [QSA,L]

	# LAISSE EN FIN DE FICHIER - KEEP THE FOLLOWING AT END OF FILE
	# Gestion des erreurs 404 si serveur utilise FastCGI : il faut capturer ici ces erreurs sinon "File not found" tout simple sera généré - au pire, ça fait double emploi avec ErrorDocument défini plus haut
	RewriteRule ^search\.php$ - [L]
	RewriteCond %{REQUEST_URI} !^(.*)\.(gif|jpe?g|png|ico|xml|gz|zip|txt|js|css)$
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule . search.php?type=error404 [L,R=404]
</ifModule>
