2012-07-12 7 views
1

Sur mon site Web, j'essaie de réécrire une URL longue en SEO.URL Rewrites ne fonctionne pas

J'ai le code suivant, mais il ne semble pas affecter n'importe quoi! Cependant, si je tape dgadgdfsg dans mon htaccess, cela provoque une erreur interne du serveur. Donc je suppose que c'est quelque chose avec Rewrite Rule.

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L] 

J'ai confirmé que mod_rewrite est activé.


Ceci est l'URL actuelle

http://mysite.com/missing-people/user-profile.php?userID=1 & prenom = Liam Gallagher & lastName =

et ce que je veux paraître trop comme

http://mysite.com/1/Liam/Gallagher

+0

Pourriez-vous s'il vous plaît ajouter une URL SEO Friendly que vous essayez de traiter? L'externe – DavChana

+0

Edited @Davinder – Callum

Répondre

1

Changer votre RewriteRule à ce (légèrement modifié de votre version)

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [QSA,L] 

Si cela ne fonctionne pas essayer de mettre un drapeau R à des fins de test (qui fera votre navigateur changer l'URI d'origine à: /missing-people/user-profile.php?userID=1&firstName=Liam&lastName=Gallagher

0

présumant votre userID est composé uniquement de chiffres et firstName et lastName sont uniquement alphanumériques.

RewriteEngine On 
RewriteRule /(\d+)/(\w+)/(\w+)/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L] 

Une version plus stricte qui fait la même chose sauf qu'elle définit des limites pour le début et la fin de l'expression rationnelle évaluée.

RewriteEngine On 
RewriteRule /^(\d+)\/(\w+)\/(\w+)$/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L] 
+0

Merci @holodoc, n'a pas travaillé cependant, rien ne semble arriver – Callum

+0

Ça devrait marcher. Essayez de remplacer '[L]' par '[R]' pour voir si une redirection externe fonctionnerait ou au moins confirmer que la réécriture fonctionne (l'URL du navigateur devrait changer). – brezanac