2017-07-27 1 views
0

J'ai recherché dans beaucoup de S.O. questions et réponses, mais n'ont pas vu une bonne solution pour cela. J'ai déjà créé et bien établi des URL SEO dans mon fichier web.config. J'utilisais un rewriteMap pour transformer mes pages de produits en n'importe quelle URL dont j'avais besoin.Réécriture d'URL pour Google Analytics

Voici ce que je dois faire:

<rule name="Redirect Rule" enabled="true" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{RedirectMapName:{REQUEST_URI}}" pattern="(.+)" /> 
    </conditions> 
    <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" /> 
</rule> 
<rule name="Rewrite Rule" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{RewriteMapName:{REQUEST_URI}}" pattern="(.+)" /> 
    </conditions> 
    <action type="Rewrite" url="{C:1}" /> 
</rule> 

Ce qui est demandé est maintenant d'ajouter des paramètres Google Analytics afin de suivre les campagnes. Si j'ajoute simplement dans les paramètres, il va bien sûr me donner une erreur 404. J'essaie maintenant d'obtenir ces URL de SEO pour prendre ces paramètres, mais devenir assez frustré.

Si je supprime la chaîne de requête, Google Analytics ne la récupérera pas car il s'agit d'un script côté client. Quelque chose comme ça peut être proche, mais je ne pointe pas vers une page spécifique. URL Rewrite with Query String

Voici comment je supprimer le querystring:

<rule name="Subject redirect with query" stopProcessing="true"> 
     <match url="^(.*)" /> 
     <conditions trackAllCaptures="true"> 
      <add input="{QUERY_STRING}" pattern="^utm_source=([^=&amp;]+)&amp;utm_medium=([^=&amp;]+)&amp;utm_campaign=([^=&amp;]+)&amp;?(.*)$" /> 
     </conditions> 
     <action type="Redirect" url="{R:1}" appendQueryString="false" redirectType="Permanent" /> 
</rule> 

Résumer, comment puis-je tourner ceci:

https://www.example.com/fancy-url 

à cette

https://www.example.com/fancy-url?utm_source=Targeted_Email&utm_medium=email&utm_campaign=campaigntag 

Répondre

0

Après beaucoup de frustration, J'étais capable de comprendre cela. La chaîne de requête était correcte, mais l'un des paramètres empêchait le traitement des autres règles. Après le nom de la règle, j'ai arrêté le traitement à true. Quand je l'ai regardé dans IIS, le réglage est beaucoup plus descriptif. Il est dit "Arrêtez le traitement des règles suivantes". Une fois que j'ai enlevé cela et déplacé cela au-dessus de mes autres règles, a parfaitement fonctionné.

<rule name="Google Query string"> 
     <match url="(.*)$" /> 
     <conditions> 
     <add input="{QUERY_STRING}" pattern="utm_source=([^=&amp;]+)&amp;utm_medium=([^=&amp;]+)&amp;utm_campaign=([^=&amp;]+)&amp;?(.*)$" /> 
     </conditions> 
     <action type="Rewrite" url="{R:0}" appendQueryString="false" /> 
    </rule>