我的.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重定向到https://www.myprimaryurl.com但是网址中缺少查询字符串参数。非常感谢任何关于为什么这不起作用的建议。
答案 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
。
确保在测试此更改之前清除浏览器缓存。