Bonjour,

Ça m'agace de bloquer à nouveau sur la réécriture d'url mais bon :

Je simplifie :
J'ai un dossier realisations dans lequel se trouvent 2 sous-dossiers : au-jour-le-jour et autre-dossier.
Ces sous-dossiers servent à ranger des photos par catégories, photos que j'affiche sur ma page.
J'ai une pagination en plus. Et tous mes liens sont codés en absolu.

Voulant réécrire mes urls pour transformer ceci :
realisations.php?c=au-jour-le-jour&p=1

en ceci :
realisations/au-jour-le-jour-1


J'ai donc écrit ceci dans mon htaccess :
RewriteRule realisations/([a-zA-Z-]+)-([0-9]+) realisations.php?c=$1&p=$2 [L]


Jusque là, ça marche.
Mais souhaitant, lorsque je n'ai qu'une seule page d'images, pouvoir écrire :
realisations/au-jour-le-jour

J'ai donc voulu ajouter une deuxième règle. J'ai capté que la plus restrictive devait être en premier.
Donc j'ai mis ceci en second :
RewriteRule realisations/([a-zA-Z-]+) realisations.php?c=$1&p=1 [L]


Et à partir du moment où j'ai ces 2 lignes, mes images n'apparaissent plus. Du moins, leur emplacement apparaît, mais elles sont visiblement bloquées en affichage par la réécriture.
Un lien vers une image ressemble à ceci : "/img/realisations/au-jour-le-jour/the00005.jpg"
Et tous les href vers les images me renvoient vers ma galerie.

Pour résumer j'ai ceci ds mon htaccess :


RewriteRule ^([a-zA-Z]+)$ $1.php [L]
RewriteRule realisations/([a-zA-Z-]+)-([0-9]+) realisations.php?c=$1&p=$2 [L]
RewriteRule realisations/([a-zA-Z-]+) realisations.php?c=$1&p=1 [L]


Première ligne : virer le .php des autres pages de mon site
Seconde ligne : pouvoir taper : realisations/au-jour-le-jour-1
Troisième ligne : pouvoir taper : realisations/au-jour-le-jour

Merci d'avance, je sèche depuis des heures Smiley smile
Modifié par Manhattan (11 Nov 2013 - 00:08)
Salut,

En ajoutant l'ancrage de fin de ligne - $ - dans la deuxième règle ?

RewriteRule realisations/([a-zA-Z-]+)-([0-9]+) realisations.php?c=$1&p=$2 [L]
RewriteRule realisations/([a-zA-Z-]+)$ realisations.php?c=$1&p=1 [L]
Purée c'est à ça que ça sert les ancrages... Faut que jbosse cette notion.

Merchiiiii, ça marche !


Smiley smile
Modifié par Manhattan (10 Nov 2013 - 19:08)
Bon, j'ai été un peu vite en besogne. Smiley decu
Cela marchait en local sur mon vhost, mais en ligne, c'est pas ça du tout.
Je viens de mettre le site sur un serveur de test (même hébergeur OVH).


Sur la page réalisations, j'affiche un joli "non" qui indique qu'il ne passe pas le :
if(isset($_GET["c"])){
dans le cas de la réécriture d'url : donc il ne détecte pas l'existence de la variable.

Mon htaccess complet est le suivant :


SetEnv PHP_VER 5_4
SetEnv REGISTER_GLOBALS 0
SetEnv MAGIC_QUOTES 0
SetEnv SESSION_USE_TRANS_SID 0
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript
##  On ne compresse pas les images, elles le sont déjà  
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
##  Certains navigateurs ne peuvent pas avoir GZIP (les vieux)  
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
##  on gère le cas des proxy  
Header append Vary User-Agent env=!dont-vary  
Options +FollowSymlinks
RewriteEngine on 
RewriteRule ^([a-zA-Z]+)$ $1.php [L]
RewriteRule realisations/([a-zA-Z-]+)-([0-9]+)$ realisations.php?c=$1&p=$2 [L]
RewriteRule realisations/([a-zA-Z-]+)$ realisations.php?c=$1&p=1 [L]
Options -Indexes
ErrorDocument 404 erreur


Quelqu'un pourrait-il m'aider ?

Edit : Bon, jviens de trouver en parcourant google. Sur OVH, il faut désactiver l'option multiviews :
Options -MultiViews

Et en effet ça marche.
Demain matin je vais prendre le temps de comprendre ce que je viens de taper Smiley smile
Modifié par Manhattan (10 Nov 2013 - 23:48)