6 votes

L'URL ne fonctionne pas avec une barre oblique après avoir supprimé l'extension à l'aide de htaccess

J'ai travaillé sur localhost, et mon fichier htaccess est le suivant

Options +FollowSymLinks 
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

après avoir ajouté le code htacces, l'url

localhost/movies/news.php

travaux

localhost/movies/news

fonctionne également mais

localhost/movies/news/

ne fonctionne pas. Il affiche "Internal Server Error" Comment faire pour que cela fonctionne avec barre oblique et sans barre oblique.

3voto

anubhava Points 172509

Vous pouvez essayer ce code :

Options +FollowSymLinks -MultiViews
RewriteEngine On

# Internally forwards movies/news/ to movies/news.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

1voto

Stony Points 7677

Le problème est que lorsque vous ajoutez la barre oblique, vous obtenez news/.php et cela ne fonctionne pas.

Une meilleure solution consiste à réécrire dans une variable GET quelque chose comme ceci :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?url=$1 [L]

Vous pouvez ensuite filtrer la variable GET dans votre script et inclure le fichier ou le contenu dont vous avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X