2010-09-28 18 views
3

Problème: visiteurs ouvrir l'URL website.com/?i=133r534|213213|12312312 mais cette URL ne sera plus valable et ils doivent être transmis à site . com/# Vidéos: 133r534 | 213213 | 12312312301 .htaccess RewriteRule Query_String

Ce que j'ai essayé: Au cours des dernières heures, j'ai essayé beaucoup mod_rewrite (.htaccess) à l'utilisation des règles Query_String, ont tous échoué. Le dernier message dans this topic montre une solution à ce problème, mais quelle serait la règle dans ma situation.

Je suis très curieux de savoir comment résoudre ce problème :)!

Répondre

6

Ce qui suit va gérer le cas simple que vous montrez. Vous devrez ajouter une logique supplémentaire si vous devez autoriser d'autres paramètres dans la chaîne de requête ou les noms de fichiers avant le?.

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^i=(.*) 
RewriteRule ^.* /#Video:%1? [NE,R=permanent] 

Pourquoi est-ce difficile?

  • RewriteRule ne regarde pas la chaîne de requête, vous devez donc utiliser RewriteCond pour évaluer la variable QUERY_STRING et capturer la partie dont vous aurez besoin plus tard (référencé via% 1)
  • le caractère dièse (#) est normalement échappé, vous devez spécifier le drapeau [NE]
  • Le suivi? sur la chaîne de substitution est nécessaire pour supprimer la chaîne de requête d'origine

J'ai testé cela sur Apache 2.2.

+1

Super Tom! Merci beaucoup, celui-ci fonctionne pour moi et je reçois le concept maintenant :) – MeProtozoan