2010-09-13 10 views
1

J'ai un plugin "Thème Mon Connexion" pour WordPress 3.0.1 qui provoque des pages de profil de mon utilisateur d'être ici:thème wordpress mod_rewrite rediriger

domain.com/login-2?action=profile

au lieu d'ici:

domain.com/profile

Je suis en train de le fixer avec mod_rewrite comme ceci:

RewriteRule ^profile /login-2?action=profile

Mais il semble ne rien faire. Je pense que c'est quelque chose d'étrange qui se passe dans WordPress mais je voulais demander aux gens si ma règle de réécriture semble correcte avant de creuser plus loin. Ai-je bien fait?

+0

Vous pourriez essayer de poster sur le site spécifique à WordPress si vous n'avez pas déjà: http://wordpress.stackexchange.com/ – Eric

Répondre

0

Par défaut, je crois que WordPress utilise la valeur REQUEST_URI lors du routage de la requête. Votre règle

RewriteRule ^profile /login-2?action=profile 

... devrait réécrire correctement /profile-/login-2?action-profile, mais WordPress n'observer ce changement parce que la valeur de $_SERVER[REQUEST_URI] en PHP est basé sur la demande initiale envoyer au serveur.

Il pourrait être possible de contourner ce problème en obtenant WordPress à utiliser PATH_INFO au lieu par une modification de la valeur par défaut WordPress bloc permalien:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.*$ index.php/$0 

Il est également possible d'utiliser le P flag pour proxy la requête réécrite par qui mettra à jour le REQUEST_URI. Il vient avec la surcharge de créer une nouvelle demande, donc je ne suis pas sûr si je le recommande:

RewriteRule ^profile /login-2?action=profile [P]