2011-11-21 5 views
2

Le RewriteRule suivant fonctionne correctementModification à un RewriteRule

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

jusqu'à ce que je place celui-ci juste en dessous

RewriteRule ^([a-z0-9]+)/$ /profile/company-profile.php?cname=$1 [NC,L] 

Maintenant, chaque domain.com/something-here va à la société -profile.php

Comment puis-je résoudre ce problème?

Tout d'abord, le domain.com/login vous amène à la index.php du dossier de connexion.
Lorsque je tape la deuxième RewriteRule, si j'écris domain.com/login encore, il montre (en arrière-plan), la société-profile.php cname = login

+1

Quel est l'effet recherché? Donner un exemple de quand le premier devrait se produire, et quand et pourquoi pas le second. – mario

+0

@mario L'a-t-il .. – EnexoOnoma

+1

vous redirigiez quelque chose comme: 'abc' vers /profile/company-profile.php et' abc' vers '/ $ 1 /' alors qui vient en premier va régner –

Répondre

3

Je recommande d'utiliser ce?:

RewriteEngine On 
RewriteBase/

# redirect company specific request 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z0-9\-_]+)/?$ profile/company-profile.php?cname=$1 [NC,L] 

# redirect all others 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_URI} !/?$ 
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301] 
+0

Je voudrais ne pas avoir la partie entreprise par – EnexoOnoma

+0

donc vous voulez '([a-z0-9 \ -_] +)' rediriger vers profile/company et '(. *)' vers tout le reste? –

+0

Je voudrais qu'un dossier soit trouvé pour le rediriger là, sinon s'il n'est pas trouvé dans company-profile.php – EnexoOnoma