2009-07-17 9 views
0

Voici un redirect je:réoriente mod_rewrite vis des chemins

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1 

Le problème est de savoir si je tape http://www.example.com/apple il est OK quand il vient à mes liens sur la page. MAIS si j'utilise http://www.example.com/apple/ (remarquez la dernière barre oblique), alors les liens sont tous vissés.

Comment écrire le fichier .htaccess pour que les liens n'incluent pas la dernière barre oblique et ne vrillent pas les liens sur la page?

Mise à jour: je me suis retrouvé à l'aide:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^(.+)/$ 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

Répondre

0

Vous devez envisager d'utiliser des chemins d'URL absolus ou des URL absolus pour référencer des ressources externes. Comme les URL relatives sont résolues à partir d'une URL de base, il s'agit de l'URL du document en cours s'il n'est pas déclaré autrement (voir BASE HTML element). Donc, si vous référencez /baz/quux en utilisant simplement le chemin d'URL relatif baz/quux, il sera résolu correctement en /baz/quux lorsqu'il est utilisé en /foo, mais il sera résolu en /foo/baz/quux lorsqu'il est utilisé en /foo/bar. Mais le chemin d'URL absolu /baz/quux est toujours résolu en /baz/quux.