2017-07-27 87 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>