chantane Posted April 10, 2012 Share Posted April 10, 2012 Bonjour, Apparemment le .htaccess est généré de manière automatique lorsque l'on coche URL simplifiée dans la page Préférences : SEO & URLs. Je trouve qu'il manque un message d'information à cet endroit. Avant, il y avait un outil génération qui n'existe plus, et j'ai passé un certain temps à le chercher dans les menus. On avait la possibilité d'ajouter des directives personnelles au .htaccess, où est donc passée cette fonctionnalité ? Merci 1 Link to comment Share on other sites More sharing options...
dom974 Posted April 10, 2012 Share Posted April 10, 2012 Je crois que tu peux toujours modifier ton .htaccess en y ajoutant tes propres directives en dehors de celles de Prestashop. En l'occurence tu dois trouver cette ligne : # ~~start~~ Do not remove this comment, Prestashop will keep automatically the code Tu peux y insérer tout ce que tu veux avant, ou tu ce que tu veux tout en bas de ton .htaccess après : # ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again Link to comment Share on other sites More sharing options...
Dev On Web Posted April 11, 2012 Share Posted April 11, 2012 Intéressant cette astuce ! PS n'écrase pas tout le fichier à l'enregistrement ? Perso j'ai préféré faire un override du contrôleur qui gère la génération et y ajouter mes directives Link to comment Share on other sites More sharing options...
Raphaël Malié Posted April 17, 2012 Share Posted April 17, 2012 Bonsoir, effectivement cette page du BO a été supprimée, ce que vous mettez dans le .htaccess est désormais gardé dans le .htaccess, c'est beaucoup plus simple pour les utilisateurs qui généralement trouvent des tutoriels demandant directement de modifier ce fichier. Il s'agit juste d'une mauvaise habitude à perdre, en oubliant cet onglet Link to comment Share on other sites More sharing options...
Dev On Web Posted April 18, 2012 Share Posted April 18, 2012 C'est une bonne idée je pense ! Petite question directement liée : si l'on souhaite mettre des instructions personnalisées en plus dans le .htaccess, PS va t-il les écraser à chaque mise à jour du fichier ? La méthode à laquelle j'ai pensé est de faire un override sur le script contenant la fonction de génération mais je me demande s'il y a plus simple ou pas Link to comment Share on other sites More sharing options...
shagshag Posted April 18, 2012 Share Posted April 18, 2012 Si l'on souhaite mettre des instructions personnalisées en plus dans le .htaccess, PS va t-il les écraser à chaque mise à jour du fichier ? Bonjour, il y a un hook pour cela : afterCreateHtaccess qui s'execute après la génération du .htaccess donc on peut réappliquer la modification. 1 Link to comment Share on other sites More sharing options...
shagshag Posted April 18, 2012 Share Posted April 18, 2012 Bonsoir, effectivement cette page du BO a été supprimée, ce que vous mettez dans le .htaccess est désormais gardé dans le .htaccess, c'est beaucoup plus simple pour les utilisateurs qui généralement trouvent des tutoriels demandant directement de modifier ce fichier. Il s'agit juste d'une mauvaise habitude à perdre, en oubliant cet onglet A condition d'avoir un accès FTP, d'avoir les droits sur le fichier, de savoir ouvrir un .htaccess avec un éditeur de texte, de pas avoir peur de toutes les directives qu'il y a dedans, de le réenregistrer sans .txt à la fin, de penser à le reuploader... Je ne pense pas que ce soit une si bonne chose. 1 Link to comment Share on other sites More sharing options...
strapper Posted April 18, 2012 Share Posted April 18, 2012 au même titre que pour les autres scripts. avantage pour prestashop 1.5 : eux au moins tiennent compte d'une balise pour que nos propres directives htaccess restent en place. la majorité des autres cms dispose d'un htaccess par défaut, et si on souhaite autre chose, y compris dans le cadre des possibilités du script, c'est à nous même de le faire. et à propos de htaccess : @RaphaelMallie : svp, toujours pas de nginx, IIS (web.config en fichier xml) ou lighttpd ? Link to comment Share on other sites More sharing options...
Raphaël Malié Posted April 18, 2012 Share Posted April 18, 2012 @shagshag : quand un utilisateur a besoin de mettre quelque chose dans le .htaccess, soit il compte faire une manipulation avancée, et dans ce cas il sait ce qu'il fait (si ce n'est pas le cas c'est qu'il n'a pas besoin de la faire), soit il sera passé par un tutoriel lui expliquant qu'il faut modifier le fichier .htaccess (et n'expliquant pas qu'il faut passer par un onglet de l'administration de PrestaShop). Franchement je trouve l'ancien système peu défendable .. sachant que dans l'ancien système on perdait tout le contenu de son .htaccess si on ne pensait pas à le mettre dans ce fameux champ obscur "configuration spécifique". @strapper : il n'y a rien de prévu à ce niveau là pour l'instant, effectivement ce serait intéressant à faire mais il y a tellement de choses intéressantes à faire qu'il faut trier Link to comment Share on other sites More sharing options...
shagshag Posted April 19, 2012 Share Posted April 19, 2012 la majorité des autres cms dispose d'un htaccess par défaut, et si on souhaite autre chose, y compris dans le cadre des possibilités du script, c'est à nous même de le faire. C'est pas parce qu’ils sont nombreux à avoir tort qu’ils ont raison! Plus sérieusement je ne vois pas ce qui empêche de garder ce fameux champ obscur "configuration spécifique" (s'il est obscure c'est qu'il manque une explication) et d'utiliser les balises # ~~start~~ et # ~~end~~ Cela permettait aussi de savoir ce qu'il y a dans le htaccess sans accès FTP. Enfin bref, je trouve qu'enlever cet onglet supprime une possibilité qui n'entre pas en conflit avec le nouveau système. Pas grave, il y aura un module pour recréer cet onglet bientôt Link to comment Share on other sites More sharing options...
strapper Posted April 19, 2012 Share Posted April 19, 2012 du coup l'avatar choisi cadre bien avec le discours Link to comment Share on other sites More sharing options...
cmak Posted August 10, 2012 Share Posted August 10, 2012 (edited) Je relance un peu ce sujet car j'étudie le hook afterCreateHtaccess Un truc étrange me saute aux yeux dans la fonction Tools::generateHtaccess Le hook afterCreateHtaccess est appelé après la fermeture du fichier .htaccess PS 1.4.8.2 - Ligne 1918 de la classe Tools (... insére les lignes dans le htaccess ...) fclose($writeFd); Module::hookExec('afterCreateHtaccess'); (... fin de la fonction ...) Alors ce hook afterCreateHtaccess, comment on s'en sert? Edited August 10, 2012 by cmak (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted August 11, 2012 Share Posted August 11, 2012 D'après moi, il faut ré-ouvrir le fichier en ajout (append) et ajouter ses propres directives. Le hic, d'après moi et ce que j'en ai également étudié, la fonction de génération garde les directives déjà inscrites (si elles sont situées après le "End"). Link to comment Share on other sites More sharing options...
cmak Posted August 11, 2012 Share Posted August 11, 2012 Dans la version actuelle ps 1.4.8.3 (1.4.8.2 aussi, par contre je n'ai pas regardé sur plus ancien), la fonction Tools::generateHtaccess créé un .htaccess tout neuf sans se soucier d'une balise 'end' Par contre, il y a l'option 'specific' correspondant à un champ dans le BO permettant d'ajouter ses propres directives. Ceci répondant à mon besoin, je n'ai pas avancé sur l'utilisation du hook afterCreateHtaccess. Link to comment Share on other sites More sharing options...
J. Danse Posted August 11, 2012 Share Posted August 11, 2012 Voici (en substance) la fonction de génération: [...] if (file_exists($path)) { $content = file_get_contents($path); if (preg_match('#^(.*)\# ~~start~~.*\# ~~end~~[^\n]*(.*)$#s', $content, $m)) { $specific_before = $m[1]; $specific_after = $m[2]; } [...] fwrite($write_fd, "# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again\n"); fwrite($write_fd, "\n\n".trim($specific_after)); fclose($write_fd); Hook::exec('actionHtaccessCreate'); return true; } Ici, la fonction enregistre dans la variable $specific_after l'ensemble des directives qui sont situées après la balise end. Ensuite, elle les rajoutes à la fin de la génération. Le hook est quand à lui appelé à la fin... Mais au final, je ne suis pas su qu'il sera énormément utilisé... (du moins, dans un premier temps) Link to comment Share on other sites More sharing options...
cmak Posted August 11, 2012 Share Posted August 11, 2012 ceci correspond sans doute à une version de ps antérieure à 1.4.8.2 c'est ce dont parlait shagshag plus haut dans ce sujet. que doit faire une fonction Monmodule::hookAfterCreateHtaccess($param) ? comme vous dites il faut réouvrir le fichier en append, insérer ses lignes, et refermer le fichier. Dans les fonctions d'installation et de désinstallation d'un module utilisant ce hook, un appel à Monmodule::registerHook(afterCreateHtaccess) est nécessaire. Pour la procédure de désinstallation, il faudra appeller Monmodule::unregisterHook(afterCreateHtaccess) puis appeller Tools::generateHtaccess Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now