Bonjour,
Je veux rediriger toutes les pages non-existantes vers index.php à la racine du site. C'est simple, voilà mon .htaccess :
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".
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
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 !
Partager