2010-05-10 2 views
0

J'ai fait un .htaccess pour que les URL de modification www.site.com/sell.php soient disponibles sur www.site.com/sell. La page de vente existe chez my/et ça marche bien. Le problème est quand j'essaye quelque chose comme www.site.com/sadasdasdasdadsdfgfds, parce que "sadasdasdasdadsdfgfds" n'existe pas. Je reçois une erreur de 500 Apache.Problème de réécriture d'URL

Ceci est mon fichier .htaccess:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* /$0.php 

Comment pourrais-je résoudre ce problème? Merci les gars.

MISE À JOUR: A travaillé! Merci les gars! Maintenant, comment puis-je rediriger l'utilisateur vers une page d'erreur personnalisée 404?

+0

Il est certain qu'il doit y avoir des gars intelligents qui vous aideront. Mais, vous pouvez envisager de poster ceci à http://serverfault.com où il y a un tas de spécialistes du serveur. – Cristian

+0

ErrorDocument 404 /404.php c'est tout ce qu'il y a à des pages d'erreur personnalisées – user97410

Répondre

0

Vous devez vérifier si la nouvelle destination est un fichier existant:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* /$0.php 

Sinon, vous obtiendrez une récursion infinie.

1

Vous devez vérifier que le fichier n'existe pas. Vous devez également vous assurer que le fichier php correspondant existe:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* /$0.php 
Questions connexes