J'ai la réécriture suivante dans mon fichier .htaccess qui supprime l'extension .php à partir des fichiers, convertissant par exemple so.com/question.php em> to to so.com/question em>. Cependant, ceci casse également le comportement DirectoryIdex par défaut, dans lequel la saisie simplement le répertoire redirigera le fichier d'index dans le dossier, par exemple so.com/answer em> affiche so.com/answer/index.php em> p> combinant simplement le code ci-dessus avec Peut-être que quelqu'un peut m'aider à combiner ces deux fonctions ou réécrire le code pour exclure les fichiers index.php, ce qui obtiendrait le même résultat? P> P> P> P> P> P> > Directoryindex index.php < / code> n'atteint pas les deux résultats. P>
3 Réponses :
Je pense que vous avez juste besoin de vérifier que le fichier existe avant de faire la réécriture, de cette façon, vous allez quitter 404 et les comportements DirectoryIndex intacts: (non testé) < / p> p>
@ Timothée groleau Nice Code, est-il une option pour supprimer "index.php" pour la page d'accueil?
Travailler bien, j'ai eu peu de cas complexe, exemple.com/page .php? Id = 3479 & NAME = Ceci-is-Page-Name J'ai dû le convertir en exemple.com/page/?id=3479/name=Chis-is-page-name
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA] verify files and folder and also, add RewriteBase /
Celui-ci donne une erreur de serveur interne :(
étrange ... vous ajoutez également du moteur? :)
Oui, j'ai inclus rewriteEngine sur code> :)
@CRRSR, tout comme un point que vous n'échappez pas au . Code> sur le 1er argres d'un cond. : -
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php I tested and it is working fine.