fabbea 2 Posted March 4, 2011 Posted March 4, 2011 Bonjour à tous,juste une petite idée en passant.Le .htaccess est un fichier indispensable pour indiquer au serveur la version de php à utiliser, les autorisations données ou non, les infos de rewriting, les redirections éventuelles, peut-être aussi pour sécuriser son site...En lisant ce forum, surtout cette partie référencement, on se rend compte qu'il suscite beaucoup de questions.Comment pourrait-on obtenir une sorte de "patron" d'un htaccess optimisé pour Prestashop, un guide générique pour tout un chacun ?Par exemple, que pensez-vous de celui-ci : # Réglages serveur # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # On indique la version de PHP si nécessaire (attention, ce code est celui applicable sur les serveurs OVH) SetEnv PHP_VER 5 # on passe le register_globals à 0 SetEnv REGISTER_GLOBALS 0 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - order allow,deny deny from all # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # REDIRECTION ANCIENNES URL, SI JE PASSE D'UN ANCIEN SITE À UN NOUVEAU # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RedirectPermanent /index.php?product-id=42 http://www.mon-site.com/categorie1/42-mon-produit.html RedirectPermanent /index.php?product-id=65 http://www.mon-site.com/categorie1/22-mon-produit.html etc etc... # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # URL rewriting module activation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RewriteEngine on # On force les 3 www dans l'url RewriteCond %{HTTP_HOST} ^mon-site\.com [NC] RewriteRule (.*) http://www.mon-site.com/$1 [QSA,R=301,L] # URL rewriting rules RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ mon-site/img/p/$1-$2$3.jpg [QSA,L,E] RewriteRule ^([0-9]+)\-([0-9]+)/([_a-zA-Z0-9-]*)\.jpg$ mon-site/img/p/$1-$2.jpg [QSA,L,E] RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ mon-site/img/c/$1$2.jpg [QSA,L,E] RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ mon-site/product.php?id_product=$3&isolang;=$1$5 [QSA,L,E] RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ mon-site/product.php?id_product=$2&isolang;=$1$4 [QSA,L,E] RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ mon-site/category.php?id_category=$2&isolang;=$1 [QSA,L,E] RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ mon-site/product.php?id_product=$2$4 [QSA,L,E] RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ mon-site/product.php?id_product=$1$3 [QSA,L,E] RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ mon-site/category.php?id_category=$1 [QSA,L,E] RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ mon-site/cms.php?id_cms=$1 [QSA,L,E] RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ mon-site/supplier.php?id_supplier=$1$3 [QSA,L,E] RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ mon-site/manufacturer.php?id_manufacturer=$1$3 [QSA,L,E] RewriteRule ^lang-([a-z]{2})/(.*)$ mon-site/$2?isolang=$1 [QSA,L,E] # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Catch 404 errors ErrorDocument 404 mon-site/404.php Que pourrait-on faire pour l'améliorer, le compléter ?Améliorer :Par exemple, pour les redirections permanentes d'un ancien site vers le nouveau :Si les redirections sont nombreuses, ne vaut-il pas mieux les mettre après le traitement du rewriting (5000 redirections ne provoquent elles pas un ralentissement) ?Ou au contraire, est il préférable de les placer tout de suite en haute, pour que le serveur les trouve en premier ?A moins que ça n'ai aucune importance ?Compléter :A l'époque sous Joomla, un post conseillait de placer dans son .htaccess ces quelques lignes (un extrait) : ########## Begin - Rewrite rules to block out some common exploits ## If you experience problems on your site block out the operations listed below ## This attempts to block the most common type of exploit `attempts` to Joomla! # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\=) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] # Block out any script that includes a [removed] tag in URL RewriteCond %{QUERY_STRING} (\<|<).*script.*(\>|>) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ /index.php [F,L] # ########## End - Rewrite rules to block out some common exploits Je sais que Presta est tourné vers la sécurité, mais pourrait-il être utile d'y ajouter aussi quelques "restrictions" de ce genre ?Qu'avez-vous l'habitude de faire sur vos sites Prestashop concernant ce précieux .htaccess ? Si quelqu'un veut rebondir... Share this post Link to post Share on other sites
Nico73 0 Posted April 5, 2011 Posted April 5, 2011 Bonjour,Bonne initiative...Quelqu'un peu dire si le fichier .htaccess est bon et bien sécurisé?Merci Share this post Link to post Share on other sites
PS Project 0 Posted May 3, 2011 Posted May 3, 2011 UP !Merci Share this post Link to post Share on other sites
Sparrow 2 Posted May 4, 2011 Posted May 4, 2011 Très bonne initiative, je suis également très intéressé.Avez vous du nouveau concernant les bonnes pratiques en .htaccess ?Je me penche actuellement sur la question, si j'ai quelques pistes je les posterai ici.Merci à vous. Share this post Link to post Share on other sites
Thierry_67 0 Posted May 27, 2011 Posted May 27, 2011 +1Et j'ajoute une question : à l'époque où j'utilisais Joomla, un conseil fréquent était de mettre un fichier index.html "vide" dans chaque répertoire, or je n'en vois pas dans les répertoires de PrestaShop.Le htaccess de PrestaShop rend ce conseil inutile ? Share this post Link to post Share on other sites
Guest Roger-C Posted May 29, 2011 Posted May 29, 2011 Ce .htaccess est encore loin d'être idéal. Il ne prend pas en compte pas mal de choses. Il y a beaucoup de choses à rajouter. Je reviendrai pour le compléter. Mais c'est bien d'avoir pris l'initiative d'en parler. Cela pemet de réunir les idées Share this post Link to post Share on other sites
Psychodays 2 Posted May 29, 2011 Posted May 29, 2011 je ne sais pas si cela vous satisfait mais j'ai mis en téléchargement mon htaccess anonymisé (remplacez le domain par le vôtre), ce fichier est pour la version 1.3.5 de prestashop malheureusement mais vous pouvez le transposer pour les version antérieures et peut être aussi la 1.4http://blog.referencementschool.com/guide-optimisation-seo-de-prestashop/lien de téléchargement à la fin du post Share this post Link to post Share on other sites
Guest Roger-C Posted May 29, 2011 Posted May 29, 2011 C'est une excellent initiative qui fait avancer la communauté. Share this post Link to post Share on other sites
xav3438 0 Posted June 3, 2011 Posted June 3, 2011 Bonjour à tous,J'ai une question, je voudrais configurer mon fichier .htaccess pour que l'adresse de mon site apparaisse sans contenir le mot "accueil" à la fin.Je m'explique, lorsque je clique sur l'adresse de mon site dans google par exemple, je tombe sur http://www.cap-innov.fr/accueil.'>http://www.cap-innov.fr/accueil.Ce que je souhaiterais, c'est arrivé simplement sur l'adresse suivante http://www.cap-innovSi quelqu'un peut m'expliquer comment l'indiquer dans le fichier .htaccess sa m'aiderait beaucoup.Merci Share this post Link to post Share on other sites
Guest Roger-C Posted June 3, 2011 Posted June 3, 2011 Bonjour,je pense qu'il y a déjà dans ton .htaccess un ligne qui crée cette redirection vers “accueil”. Il faudrait l'enlever et tout ira bien. Ou sinon me l'envoyer par MP et je verrai ce que je peux faire.Cordialement Share this post Link to post Share on other sites
alchimiedesbougies 0 Posted June 8, 2011 Posted June 8, 2011 bonjour,si ça peut aider, j'ai ceci dans mon htaccess (hebergement OVH) qui marche bien pour rediriger la page avec /index RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp) RewriteRule ^(.*)index.(htm|html|php|asp)$ /$1 [R=301,L] Share this post Link to post Share on other sites
Recommended Posts