2010-11-08 4 views
1

ce sont les règles de réécriture que j'utilise normalement pour urls propres,rewrite Mod PHP et Apache: recherche par mot clé

RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?pg_url=$1 [L,QSA] 
RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ index.php?pg_url=$2 [L,QSA] 

ils accepteront demandés urls tels que,

mysite/home 
mysite/portfolio/photograhy 

mais comment puis-je définir la règle de réécriture pour seaching tels que,

mysite/search?photograhy 
mysite/search?painting 

J'ai essayé avec celui-ci ci-dessous,

RewriteRule ^search?([a-zA-Z0-9\-]+)/?$ index.php?pg_url=search&keyword=$1[L,QSA] 

ils seach mot-clé ne sera pas correct, mais je vais obtenir ce ci-dessous tout ce que je cherche,

echo $_REQUEST['keyword']; 


h[L,QSA] // result 

merci.

Répondre

1

Vous devez utiliser un RewriteCond pour la chaîne de requête, à la:

RewriteCond %{QUERY_STRING} ^keyword=([a-zA-Z0-9\-]+)$ 

Vous devrez ajuster votre requête pour faire quelque chose comme ?keyword=photography

Voici quelques lectures sur le sujet: http://wiki.apache.org/httpd/RewriteQueryString

+0

merci beaucoup pour ça! :-) – laukok

+0

Vous êtes les bienvenus! – Stephen