2017-07-27 52 views
0

我已经搜遍了很多S.O.问题和答案,但还没有看到一个好的解决方案。我已经在我的web.config文件中创建并建立了良好的SEO网址。我使用的是rewriteMap,基本上可以将我的产品页面转换为我需要的任何URL。谷歌分析的网址重写

这是我必须这样做:

<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> 

正在请求什么现在是在谷歌Analytics(分析)参数添加,以跟踪活动。如果我只是添加参数,它当然会给我一个404错误。我现在试图让这些SEO网址来获取这些参数,但变得非常沮丧。

如果我删除查询字符串,Google Analytics将无法将其提取出来,因为它是客户端脚本。像这样的东西可能会很接近,但我没有指向任何特定的页面。 URL Rewrite with Query String

这是我如何去除查询字符串:

<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> 

总结出来的,我怎么把这个:

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

这个

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

回答

0

太多的无奈之后,我能够弄清楚这一点。查询字符串没问题,但其中一项设置阻止了其他规则的处理。在规则名称后,我停止了处理设置为true。当我在IIS中查看它时,设置更具描述性。它说“停止处理后续规则”。一旦我将其移除并将其移至其他规则的上方,则完美无缺。

<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>