J'ai lutté avec cela pendant deux jours en ce moment..htaccess mod rewriterule et ampersands
Au moment où j'ai la règle suivante:
RewriteRule ^(.*)$ index.php?u=$1 [NC,L]
ports où tout derrière example.com/ à index.php comme variable GET u. Qui est en cours de traitement dans index.php avec une explosion pour définir te différents arguments étant: la ville (entre les première barre oblique) en la position (le deuxième argument)
Cela fonctionne parfaitement pour les adresses suivantes:
example.com/City/location/ ou example.com/City/location
example.com/City/ ou example.com/City
qui produit:
$arg[0] = city
$arg[1] = location
le problème se produit lorsque le Locat ion a une esperluette au nom de l'emplacement:
example.com/city/location&more
se traduit:
index.php?u=city/location&more
Le problème est évident; Je ne peux plus utiliser le paramètre explode dans index.php parce que la seconde partie du nom d'emplacement n'est pas stockée dans $ _GET ['u'].
Comment puis-je résoudre ce problème?
Je pense que trois solutions que je ne sais pas comment mettre en œuvre:
1) la réécriture de la règle de réécriture de diviser la ville et l'emplacement dans le .htaccess
2) en utilisant un .htaccess équivalent de urlencode pour transformer le & -sign à% 26
3) une autre solution complète :)
Merci d'avance!
Modifier Premièrement: Lorsque le lien est produit par mon site, il est traduite avec urlencode. Il n'y a donc pas de & où il ne devrait pas y en avoir un. Le & fait partie d'un nom d'entreprise comme: "Bagels & Beans" Lorsque les gens veulent rechercher cette entreprise, ils tapent: www.example.com/city/bagels & haricots dans l'url-field. ET c'est là que le problème commence.
modifier 2 Quand je vais à: example.com/city/bagels%26Beans il se traduit par ce qui suit: $ _GET:
Array
(
[u] => city/Bagels
[Beans] =>
)
modifier 3 La façon dont j'exploser la $ _GET ['u'] pour former les arguments.
$arg = explode('/',$_GET['u']);
Quel est le code PHP que vous utilisez pour l'explosion? (qu'est-ce que vous exploser sur?) –
Je l'ai mis dans ma question, à l'édition 3 – blub