lorik Posté 5 Décembre 2016 Posté 5 Décembre 2016 Bonjour, Je cherche à faire une ré-ecriture d'url sur un nom de dossier (en plus du nom de fichier), mais je coince, là... Principe : J'ai un dossier 'physique', un vrai, sur le serveur, qui se nomme 'seo'. Chemin : mondomaine.com/seo. Dedans, j'ai un script index.php. Ce que je souhaite, c'est que TOUTES les urls du type mondomaine.com/theme1/keyword_x, ou mondomaine.com/theme2/keyword_y soient au final traitées par mon script mondomaine.com/seo/index.php?kw=keyword_blabla. Pour la partie 'keyword_', pas de problème, c'est pour les dossiers (theme1, theme2, etc...) que je coince.... Une idée, les champions ? Par avance merci
Wolf18 Posté 5 Décembre 2016 Posté 5 Décembre 2016 Bonjour, tu peux utiliser quelque chose du genre mais attention car cela pourrait éventuellement créer des conflits avec d'autres URLs. L'idéal serait, je pense, d'utiliser un caractère bien spécial pour identifier tes urls qui vont passer par ce script. RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ ./seo/index.php?theme=$1&kw=$2 [L] J'utilise ce genre de script pour mon site et cela fonctionne parfaitement. Et encore, moi je n'utilise même pas de dossier physique, juste de la réécriture pour dossiers et même sous dossiers. J'espère t'avoir aidé.
lorik Posté 6 Décembre 2016 Auteur Posté 6 Décembre 2016 Bonjour Wolf, merci du coup de main. ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ ça j'utilise déja. Mais tu m'as donné une idée, effectivement, ne pas utiliser de dossier 'seo', et mettre mon fichier à la racine (pas en index.php, du coup, mais c'est pas important). Donc à contrario, comment avoir une re-ecriture pour que toutes les urls contenant un dossier soient réecrites en 'mondomaine.com/script.php?blabla' (j'ai pas besoin d'identifier le dossier de l'url, en fait), SAUF les urls contenant un dossier spécifique (ex, /categorie/, ou /blog/, qui sont pris en charge par une autre ré-ecriture en place). Je sais pas si je suis clair ?
Wolf18 Posté 6 Décembre 2016 Posté 6 Décembre 2016 Effectivement je ne suis pas sur d'avoir tout compris. Tu souhaites donc savoir si tu as besoin d'identifier ton nom de dossier en paramètre de l'URL ? La réponse est non, tu peux très avoir ça : RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ mapage.php?kw=$2 [L] Le seul point important c'est de respecter l'incrémentation des valeurs passées dans l'URL. La première variable étant le nom du dossier elle se nommera $1, si tu n'en as pas besoin et que seule la deuxième variable t'intéresse alors récupères uniquement $2.
lorik Posté 7 Décembre 2016 Auteur Posté 7 Décembre 2016 Ouais, c'est sur que c'est pas bien clair, mon truc Bon, je prends dans l'autre sens : On a un site basé sur un CMS, qui a ses propres règles, et des dossiers '/forum/', '/blog/', '/clients/'... tout ça marche bien. Par contre, j'ai un script (allez, 'script.php') hors CMS qui me gère 'à la volée' toute une serie de pages optimisées SEO, pas gérées par le CMS. Les urls de ces pages sont par exemple : /tv/expression1 /bureau/expression2 /aspirateur/expression3 ... Donc je veux que par principe, toutes les urls avec '/forum/', '/blog/', '/membres/' ou ne contenant PAS de dossier restent gérées par le CMS (en gros, pour ces urls, on ne fait rien, le CMS les prend en charge) Mais que toutes les urls contenant un autre dossier, quel qu'il soit, soient prises en charge par script.php Je crois qu'il y a des possibilité de conditions pour les rewrite rules, mais bon, je ne suis pas dev, plutôt seo, donc je patauge un peu salement techniquement
Wolf18 Posté 26 Décembre 2016 Posté 26 Décembre 2016 Désolé pour le retard. Je ne sais pas si la règle va faire doublon ou pas avec ton CMS. Je te propose donc de faire le test sur ton site. Si les pages s'affichent correctement alors tout va bien, sinon il faudra voir les URLs qui posent problème et essayer de trouver une solution. C'est un peu l'inconvénient quand on utilise un CMS et que l'on veut le modifier... Il faut prendre garde à ne pas venir tout dérégler en modifiant quelque chose
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant