Conditions de réécriture multiples et exception de dossier dans le fichier .htaccess

Je travaille sur mon site et je rencontre des problèmes avec .htaccess fichiers .htaccess . J’ai un répertoire principal (dans mon cas public_html) avec un sous répertoire appelé admin . Ce que je tente de gérer, c’est que si l’utilisateur final saisit l’URL comme example.com/admin , il sera redirigé vers ce répertoire admin qui contient le formulaire de connexion, le fichier index.php personnalisé, etc. Si une autre URL a été entrée, elle doit être vérifiée par certaines conditions. Voici mes fichiers .htaccess:

Pour le répertoire principal:

 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?menu=$1&op=$2&id=$3 [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^([^/]+)/([^/]+)$ index.php?menu=$1&op=$2 [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^([^/]+)$ index.php?menu=$1 [QSA,L] 

Pour le répertoire admin:

 RewriteEngine off 

En ce moment, le répertoire principal des fichiers .htaccess fonctionne correctement après avoir entré des URL telles que:

 example.com/news/article/4 example.com/news/list 

example.com/home

mais si je example.com/admin , il est associé à la troisième règle de réécriture et pense que «admin» est un lien de menu.

J’ai essayé différentes exceptions, mais rien n’a fonctionné pour moi, admin est toujours associé à menu pas répertoire. Peut-être que mon fichier principal .htaccess a des erreurs? Quelqu’un pourrait-il me suggérer la bonne solution pour ce problème?

Vous n’avez pas besoin de .htaccess dans le répertoire admin . Il suffit d’avoir ces règles en root .htaccess:

 DirectorySlash On DirectoryIndex index.php RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?menu=$1&op=$2&id=$3 [QSA,L] RewriteRule ^([^/]+)/([^/]+)/?$ index.php?menu=$1&op=$2 [QSA,L] RewriteRule ^([^/]+)/?$ index.php?menu=$1 [QSA,L]