301 redirige avec la réécriture d'URL pour réduire les URL avec les parameters de requête

D'accord, j'ai donc une réécriture d'URL mise en place sur mon server (IIS 7) afin que, par exemple,

http://example.org/p/1234/ 

est vraiment

 http://example.org/product/?product_id=1234 

(Avec / produit / contenant un file index pour une application Web capable de traiter les parameters de requête).

Le problème est que je veux que tout le monde utilise le /p/1234/ urls maintenant, alors j'aimerais envoyer une redirection 301 chaque fois que quelqu'un visite l' ancienne URL de /product/?product_id=1234 , mais autant que je peux le dire Lorsque la réécriture d'URL se produit, en ce qui concerne le server, l'user est entré dans /product/?product_id=1234 .

Bien que dans la barre d'URL du browser, il puisse dire http://example.org/p/1234/ , quand je fais un déchargement des en-têtes et des variables CGI, /p/1234/ ne s'affiche pas dans aucune des variables.

Je suppose que mon souci est que, même si je peux le faire, il semble que cela rendrait une request simple assez compliquée:

  1. Aller à /p/1234/
  2. Réécrivez-le sur /product/?product_id=1234
  3. Était-ce à l'origine /p/1234/ ? ( oui )
  4. Ne fais rien.

Et sinon:

  1. Aller à /product/?product_id=1234
  2. Était-ce à l'origine /p/1234/ ? ( non )
  3. 301 Redirection vers /p/1234/
  4. Réécrivez-le sur /product/?product_id=1234
  5. Était-ce à l'origine /p/1234/ ? ( oui )
  6. Ne fais rien.

Je sais que finalement, certains index de search élimineront les anciennes URL en faveur de celles spécifiées par la redirection 301, mais jusqu'à ce moment, il semble que les servers comportent beaucoup de frais généraux.

En outre, si je l'ai configuré, y at-il un filter que je pourrais utiliser dans IIS pour le faire, ou devrais-je append la logique à mon webapp?

Notez que j'ai configuré <link rel="canonical".../> pour toutes ces pages, mais je vois encore que l'ancien format s'affiche dans les résultats de search.

  • Je suis un idiot en entrant une règle de réécriture permanente incorrecte, que fais-je?
  • Apache 2.4 avec PHP-FPM. Redirection htaccess
  • Comment redirect le trafic http de différents VLAN?
  • HTTP / 1.1 301 déplacé en permanence de l'IIS pendant deux minutes
  • Réécriture d'URL IIS7
  • Comment supprimer le trait d'union et le trait de soulignement de url ssortingng dans nginx?
  • Nginx reverse proxy forces 301 sur le sous-domaine (et il ne devrait pas)
  • CakePHP dans un sous-directory utilisant nginx (réécrire les règles?)
  • url réécrire dans différents domaines
  • Règle la règle HTTPS vers un autre port
  • Existe-t-il une solution élégante pour réécrire l'image longue? Demandez-urls dans cachable_nice_urls, en utilisant uniquement apache htaccess?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.