Bonjour,

je suis passé à l'URL Rewriting sur mon site.
Celui-ci étant vieux (fin 90) j'ai évidemment des 10aines et des 10aines de liens morts qui nécessitent d'être supprimer.

GWT m'en indique près de 200, certains n'ayant d'ailleurs jamais existé ce qui m'étonne.

Pour mon URL RW, je me suis basé sur ce que faisait WordPress.
J'ai donc un htaccess assez dépouillé de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Si j'ai bien compris, cela veut dire que si le fichier OU dossier avec son path complet existe physiquement, on les prends, sinon on appelle index.php à la racine du site.

Ma question est donc, comment et où dois-je intercaler des conditions pour rediriger les pages mortes.
Je pense que je dois faire des 301.

Exemple d'URL :
http://www.monsite.com/dossier/actua...r=3536&t=2&d=0
Note : j'ai bcp de pages PHP, néanmoins, je ne peux pas les traiter en vrac car l'administration de mon site n'est pas URL RW. Par conséquent, si je traite les php en vrac (*.php sauf index.php) je vais au devant de grave désillusion

Sur mon Mac, je me suis amusé à faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php?q=%{REQUEST_FILENAME} [L]
Je ne comprends pas ce que contient "q".
Si http://www.monsite.com/dossier/actualites.php
Alors q= /<monpath>/www/site/dossier
Si http://www.monsite.com/dossier/toto/actualites.php
Alors q= /<monpath>/www/site/dossier
Alors q= /<monpath>/www/site/dossier aussi !

Pour moi, et d'après le tuto sur ce site, ça devrait contenir tout le path jusqu'au non de fichier non ?


Ceci dit, je cherche donc l'écriture pour faire :
si <file>.php existe dans le répertoire proposé OU à la racine du site alors on le traite.
sinon en "redirige" par /index.php

J'ai pensé à tester REQUEST_URI avec une regex pour extraire le nom de fichier PHP mais c'est tellement dur à tester...

Merci d'avance pour votre aide,
cordialement