虚荣URL重定向到跟踪网址

时间:2016-02-23 09:34:17

标签: apache .htaccess redirect ssl url-redirection

我的.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]

基本上我希望这个文件能够实现4件事:

  1. 将myvanityurl.com重定向到跟踪网址
  2. 将所有托管域名重定向到myprimaryurl.com
  3. 强制所有域使用HTTP
  4. 从网址
  5. 中删除index.php

    除了规则1之外,所有这些都按预期工作.myvanityurl.com重定向到https://www.myprimaryurl.com但是网址中缺少查询字符串参数。非常感谢任何关于为什么这不起作用的建议。

1 个答案:

答案 0 :(得分: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]

即从DOT变量的模式中删除%{HTTP_HOST},并在目标网址中使用$1

确保在测试此更改之前清除浏览器缓存。