2010-06-09 7 views
2

Je réécriture actuellement urls deURL Rewriting avec mod_rewrite

http://domain.com/profile/?u=10000017564881 

ce à ce

http://domain.com/profile/10000017564881 

avec la réécriture suivante

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*?)\/?$ index.php?u=$1 [L] 

Cependant je voudrais optimiser pour seo a litte et aller avec:

http://domain.com/profile/10000017564881/Anything-I-want-here 

Il est évident que/Tout-je-veux-là est tout simplement nul ...

ignorée

les gars de la moindre idée? très apprécié

Répondre

6

Il suffit de supprimer le $ de la regex, et tout ce qui est après le numéro d'identification sera ignoré, et l'URL sera réécrit correctement.

RewriteRule ^(.*?)\/? index.php?u=$1 [L] 

# the following will work the same (as far as I can tell), and 
# it's a lot more obvious at first glance what it does, which is 
# match everything until the first slash 
RewriteRule ^([^/]+)  ... 

Quand je fais quelque chose comme ça, j'aime vérifier l'URL dans le code et redirection 301 si le « Tout-je-veux-ici » ne correspond pas aux données.

+0

RewriteRule^([^ /]) \ /? index.php? u = $ 1 [L] Comme ça? ne semble pas travailler mon pote Je l'ai écrit correctement? – Webby

+0

Vous avez raison, j'ai oublié un '+'. J'ai testé la mise à jour à http://regexpal.com/ et ça marche très bien. Vous pouvez omettre le '\ /?' Et cela fonctionnera toujours. – zildjohn01

+0

Super copain merci! +1 – Webby