2016-02-23 75 views
1

我在我的.htaccess中的規則個性化網址重定向到跟蹤網址

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^\.myvanityurl\.com$ [NC] 
RewriteRule ^(.*)$ https://www.myprimaryurl.com?utm_source=myvanityurl.com&utm_medium=print&utm_campaign=general [R=301,L] 

RewriteCond %{HTTP_HOST} !^www\.myprimaryurl\.com$ [NC] 
RewriteRule ^(.*)$ https://www.myprimaryurl.com/$1 [R=301,L] 

RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

#Remove index.php from url 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

基本上我想這個文件acheive 4兩件事:

  1. 重定向到myvanityurl.com跟蹤網址
  2. 重定向任何域名停放到myprimaryurl.com
  3. 強制所有的域使用HTTP
  4. 雷姆如預期,除了規則1. myvanityurl.com被重定向到https://www.myprimaryurl.com但查詢字符串PARAMATERS從URL中缺少來自URL

所有這些工作的OVE index.php文件。將不勝感激任何意見,爲什麼這是行不通的。

+0

什麼查詢字符串參數丟失 - 你在那裏你自己放置在重寫替換,或任何出現在_original_請求?如果是後者,則需要使用「QSA」標誌。如果前者 - 調試正在發生的事情。通過瀏覽器的調試工具,網絡面板來檢查您的瀏覽器產生了什麼要求。也許它會使最初的一個包括你想要的查詢字符串參數,然後再被其他規則或類似的規則重定向。 – CBroe

+0

缺少的參數是我自己放在重定向網址中的參數。 myvanityurl.com應重定向到https://www.myprimaryurl.com?utm_source=myvanityurl.com&utm_medium=print&utm_campaign=general,但它會被重定向到https://www.myprimaryurl.com。 –

回答

0

保持你的第一條規則是:

RewriteCond %{HTTP_HOST} ^myvanityurl\.com$ [NC] 
RewriteRule ^(.*)$ https://www.myprimaryurl.com/$1?utm_source=myvanityurl.com&utm_medium=print&utm_campaign=general [R=301,L,NE] 

即刪除%{HTTP_HOST}變量的模式開始DOT和目標URL中使用$1

請確保在測試此更改之前清空瀏覽器緩存。

+1

清除緩存並刪除DOT似乎解決了這個問題。 –