2010-12-13 5 views
1

Je crée un très petit site, 5 pages, en PHP sur Apache. J'ai créé les cinq fichiers php dans le répertoire principal, index.php, random.php, etc. Je voulais cacher l'extension .php, donc je mets ce qui suit dans mon .htaccess:Aide avec le problème simple RewriteRule

RewriteRule ^random/?$ random.php

Si je visite www.example.com/random j'obtiens la page dont j'avais besoin, mais si je visite www.example.com/random/ (barre oblique à la fin), le css et les liens sont tous un répertoire vers le bas, c'est-à-dire le serveur pense que je suis dans /random/index.php, pas à /random.php.

Je suis un noob total chez RewriteRule, donc merci d'avance!

Répondre

2

Vous devez avoir une règle distincte pour la barre oblique finale qui effectue une redirection HTTP. par exemple:

RewriteRule ^random/$ /random [R=301,L] 
RewriteRule ^random$ random.php 

Les URL relatives sont gérées par le navigateur, donc avec ce slash, le navigateur sera confus.

La plupart des serveurs HTTP font l'inverse de ce type de redirection pour les noms de répertoire. Autrement dit, si vous allez à http://example.com/foo/bar et bar est un répertoire, vous serez redirigé vers /foo/bar/.

+0

Merci! Je ferai ça. –