Bonjour,
Dans le cadre de mon blog, je suis amené à faire de la redirection d'url. Classique donc
Si la page fait appel à /article-id/ alors je redirige sur page=article&id=x etc..
Quand c'est des pages, ça fonctionne bien. Mais là où le bordel monstre arrive, c'est quand y a des images. Je controle pu rien du tout et je suis clairement pas assez calé (même malgrés la doc) pour m'en dépatouiller
Voici mon htaccess actuel :
RewriteEngine On
RewriteRule ([a-zA-Z0-9\-]+)-([0-9]+)/ index.php?page=article&article=$1&id=$2
RewriteRule page/categories/([0-9]+)-([a-zA-Z0-9\-]+)/ index.php?page=categories&categorie=$2&id=$1
RewriteRule page/([a-zA-Z\-]+) index.php?page=$1
RewriteRule page/([0-9]+)/ index.php?page=$1
RewriteRule core/css/([a-zA-Z0-9\-]+.css) core/css/$1
RewriteRule core/js/([a-zA-Z0-9\-]+.js) core/js/$1
RewriteRule core/images/([a-zA-Z0-9\-@_]+.[a-zA-Z]+) core/images/$1
ErrorDocument 404 /404.php
Quand c'est sur "page/" ça fonctionne bien. Quand c'est sur "core/...", c'est de la bidouille que j'ai du faire parce qu'il pétait un plomb.
Le code que vous voyez là fonctionne, mais en écrivant un article où je fais appel à des images situées dans le dossier /uploads/albums/2016-2017/image.jpg
Ca fonctionne pu, il me redirige sur l'accueil si je me rend à l'adresse de l'image.
Le problème est le tiret -
Pas de tiret, ça fonctionne, un tiret, ça fonctionne pu. Je me dis donc que ça interfère avec mon code ci dessus, mais incapable de dire pourquoi, où etc..
Si vous pouviez m'aider, ça serait gentil de votre part, merci ! :)
Si tu penses que les images passent par la première rule (page=article) il suffit de mettre une condition devant pour qu'elle ne traite pas les fichiers.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([a-zA-Z0-9\-]+)-([0-9]+)/ index.php?page=article&article=$1&id=$2
Pourquoi tu fait de la redirection sur tes sources ?
RewriteRule core/css/([a-zA-Z0-9\-]+.css) core/css/$1
RewriteRule core/js/([a-zA-Z0-9\-]+.js) core/js/$1
RewriteRule core/images/([a-zA-Z0-9\-@_]+.[a-zA-Z]+) core/images/$1
Puisque après pour les images il te suffit de les récupérer en absolue http://www.mondomaine.fr/core/images/mon_image_dans_l_article.jpg
Pourquoi ? J'en sais rien, je sais que ça ne chargeait pas les fichiers sans ces lignes :x
Et le problème c'est que justement, en me rendant même à l'image en absolu, ça me redirige à l'accueil. (Si il y a tiret dans l'arborescence)
Bon en faite, le problème des sources, c'était juste que le chemin n'était pas en absolu. (Genre le fichier css était chargé en ./path/fichier), je l'ai donc rendu en absolu, et ça m'a permis d'enlever quelques lignes
Mais ça règle pas mon problème premier :/
Merci Huggy ! Ca fonctionne après ça. En revanche, j'ai du mal à comprendre le "pourquoi"