2017-10-05 3 views

Répondre

1

Essayez quelque chose comme près du haut de votre fichier .htaccess:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^search_query=([^&]*)&search_type=(videos)&type=(public)$ 
RewriteRule ^search$ /search/%2?search_query=%1&type=%3 [R,L] 

Ceci est une correspondance exacte pour l'URL donnée à titre d'exemple, sauf que SOMEQUERY est variable.

%1, %2 et %3 sont backreferences aux sous-masques capturées correspondant à la précédente expression de comparaison. c'est à dire. <SOMEQUERY>, videos et public. %2 et %3 sont vraiment juste pour la cohérence et pour vous permettre d'ajouter facilement un autre search_type par exemple. par exemple. search_type=(videos|images).

Il s'agit d'une redirection temporaire (302). Changez le R en R=301 si cela est destiné à être permanent, mais seulement après vous être assuré qu'il fonctionne correctement. (Les 301 sont mis en cache par le navigateur, ce qui peut rendre les tests problématiques.)

+0

Fonctionne bien! Merci beaucoup! Très intelligiblement et clairement expliqué. Il y a encore un petit problème avec l'encodage de l'alphabet cyrillique dans la requête. Nous allons résoudre cela avec php ou nginx. Meilleurs voeux! –

+1

De rien. Si cela répond à votre question, veuillez marquer la réponse comme "acceptée" (coche à gauche sous les flèches) pour la retirer de la liste des questions sans réponse. Une fois que vous avez 15+ représentant, vous pouvez également modifier les réponses (et d'autres questions) que vous trouvez utiles. Très apprécié, merci :) – MrWhite