2010-11-12 4 views
0

Salut je suis en utilisant ce code pour mes sous-répertoires redirect pour les noms d'utilisateurhtaccess pour nom d'utilisateur dynamique

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ profile.php?username=$1&%{QUERY_STRING} 

J'ai ce problème qui est utilisateur d'entrer domain.com/username/ il aura des problèmes, il ne fonctionne que si ils entrent domain.com/username

Des solutions à cela ??

Aussi, par exemple si j'ai un vrai répertoire appel/images /, quand ils entrent domain.com/images. il y aura une erreur concernant un problème de bouclage. quel est le moyen de résoudre ce problème?

+0

essayez 'RewriteRule ^/(. *) /? * $ Profile.php? Username = $ 1 &% {QUERY_STRING}' et mieux tester si l'utilisateur entrez 'domain.com/username //' ou même 'domain.com/nom d'utilisateur /// ' – ajreal

+0

qui ne fonctionne pas. Je me demande s'il y a quelque chose à couper 1 $ s'il a un extra/à l'arrière? –

+0

sia - il '/?' Soi-disant pour correspondre 0 ou 1, j'espère – ajreal

Répondre

0

Il est préférable de faire en sorte que vos réécritures nécessitent la barre oblique.

alors vous pouvez rediriger urls non-slash à réduire terminés ended un,

en utilisant quelque chose comme ceci:

RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301] 

J'espère que cela aide.

+0

ne peut pas faire, je dois supprimer le/si non est va rediriger vers profile.php? Username = nom d'utilisateur/qui est invalide –

+0

Ne vous dérangez pas, vous peut inverser ma réponse pour rediriger des URLs obliques à l'autre. – Mohammad

+0

Je ne suis pas très clair de ce que vous voulez dire? pouvez-vous me montrer un exemple de votre code. S'il vous plaît. ma condition est si domain.com/username et domain.com/username/ fonctionne. –