Bonjour,
Je veux rediriger toutes les pages non-existantes vers index.php à la racine du site. C'est simple, voilà mon .htaccess :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
ErrorDocument 400 /index.php?er=400
ErrorDocument 401 /index.php?er=401
ErrorDocument 403 /index.php?er=403
ErrorDocument 404 /index.php?er=404
ErrorDocument 406 /index.php?er=406
ErrorDocument 408 /index.php?er=408
ErrorDocument 411 /index.php?er=411
ErrorDocument 500 /index.php?er=500
Cela redirige vers /index.php toute url dont le fichier n'est pas présent sur le serveur ainsi que les url www.site.com/rep/ si je n'ai pas de répertoire nommée "rep".

Et c'est là que j'ai un problème : il se peut que le répertoire existe vraiment et à ce moment là Apache veut l'ouvrir et renvoi une erreur 403 Forbiden (accès au répertoire interdit).
J'ai des fichiers et des sous-répertoires auxquels je peux accéder sans problème.
Si je mets un index.html dedans il s'affiche évidemment sans problème mais ça ne redirige pas vers mon index principal à la racine comme je voudrais.

Quelle est la meilleure solution dans ce cas (hormis changer les noms de mes répertoires, ce qui ne m'arrange pas pour des raisons de rétrocompatibilité et de référencement) ?
Modifier mon htaccess à la racine (et comment), ajouter un htaccess dans ces répertoires problématique (et avec quel contenu), faire un bête include() dans un index.php dans ces répertoires problématiques... ?

Tout gérer dans mon htaccess de la racine serait le plus pratique mais je ne sais pas comment.
Merci d'avance !