J'ai passé la requête à ma page de résultats de recherche avec la variable: ?s=
.
J'ai testé le site et j'ai découvert que lorsque la requête contient un symbole &
, lorsque j'essaie de la récupérer avec $_GET['s']
, elle est coupée au symbole &.
J'ai essayé avec &
et également en le convertissant en %26
et j'ai toujours le même problème.
Comment puis-je les encoder pour les passer dans l'URL?
EDIT:
J'ai signalé que j'ai essayé de l'encoder en %26
et cela n'a toujours pas fonctionné.
J'ai essayé avec urlencode()
et sur ?s=pizza%26pasta
quand j'utilise print_r($_GET)
je reçois:
Array ( [s] => pizza [pasta] => )
EDIT 2:
Je viens de découvrir que le problème a en fait à voir avec .htaccess
, il semble transformer "&something" en "&something=". Aucune idée de comment le corriger dans htaccess.
Voici mon fichier .htaccess:
RewriteEngine On
RewriteBase /
# remove www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
# rewrite to action
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/?$ /a/?s=$1 [L,QSA]