删除utm_source参数并将索引替换为htaccess

拉斐尔·多拉多(Rafael Dorado)

我想做的是删除utm_source参数,然后用我的index2.html文件替换任何请求

这是我尝试的:

# BEGIN
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} "utm" [NC]
RewriteRule ^(.*)?$ "index2.html$1" [QSA,L]
RewriteRule (.*) /$1? [R=301,L,QSD]
<IfModule mod_rewrite.c>
# END

使用以下代码行,我删除了utm_source参数:

RewriteRule (.*) /$1? [R=301,L,QSD]

我想要的是使用这一行代码RewriteRule ^(.*)?$ "index2.html$1" [QSA,L],然后删除utm_source参数,但我无法做到这一点。

到目前为止,更糟糕的是我一次只能做一件事。如果删除该参数,请不要执行其他操作。

怀特先生

假设您的.htaccess文件位于文档根目录中...

要仅删除utm_sourceURL参数(而不是所有参数),您可以先执行以下操作:

RewriteCond %{QUERY_STRING} ^(.*)&?utm_source=[^&]*&?(.*)$
RewriteRule (.*) /$1?%1%2 [R=302,L]

然后,要重写对index2.html您的所有请求,将执行以下操作(假设您也不想重写对现有文件的请求):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index2.html [L]

但是,在您的指令中,您不仅可以重写为index2.html,而且还试图附加其他路径名信息(path-info)-这是必需的吗?尽管您的代码中缺少斜线(在中使用.htaccess),所以重写将格式错误,并导致404。如果需要path-info,则将最后一个更改RewriteRule为:

RewriteRule (.*) index2.html/$1 [L]

概要

RewriteEngine On

# Remove the "utm_source" URL parameter
RewriteCond %{QUERY_STRING} ^(.*)&?utm_source=[^&]*&?(.*)$
RewriteRule (.*) /$1?%1%2 [R=302,L]

# Rewrite all requests to "index2.html"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index2.html [L]

不需要<IfModule>包装器,因为如果没有mod_rewrite,您的代码可能无法工作?RewriteBase如果您的.htaccess文件位于文档根目录中,也不需要此指令


RewriteCond %{QUERY_STRING} "utm" [NC]
RewriteRule ^(.*)?$ "index2.html$1" [QSA,L]
RewriteRule (.*) /$1? [R=301,L,QSD]

当前指令存在许多问题。一对出色的情侣...

  • 规则顺序错误,因为检查查询字符串的条件仅适用于RewriteRule随后的条件。因此,最后一个RewriteRule(您说的是“删除utm_source参数”)无条件执行,并且将导致重定向循环。

  • 第一条规则(重写为index2.html$1)仅在查询字符串中(任何位置)存在“ utm”(未删除)时才执行。但这index2.html$1将导致无效的重写.htaccess(如上所述)-您缺少斜杠)。

  • 您的最后一条规则将删除整个查询字符串,而不仅仅是utm_source参数。但是您的第一个规则尝试将查询字符串追加到重写的请求中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

.htaccess 301将示例/old-page/?utm_source=twitter.com重定向到/new-folder/new-page/?utm_source=twitter.com

从URL删除UTM参数

DataStudio SUM文本字段是否包含“ utm_source ='google'“ [关闭]

如何完全删除Unity,并将其替换为Cinnamon?

删除重复的条目并将其替换为逗号| 重击

如何通过jquery删除按钮并将其替换为<a>标签

应用程序何时会收到内容为utm_source =(not%20set)&utm_medium =(not%20set)的install_referrer?

布尔值以pandas索引DataFrame并将列替换为条件为True的Series元素

在Java中查找位于素数位置的数组索引并将数组元素替换为-1的代码

参数替换替换为交替(OR)

如何找到具有负值的索引并将其替换为恰好为正的最接近的索引值?

.htaccess删除查询参数

如何将多个参数添加到 XPath 并将 %s 替换为 param

删除JSON中的引号并将方括号替换为方括号

如何删除操作栏标题并将其替换为新标题?

删除第一行并将第一列数据替换为给定数据

正则表达式删除所有非字母数字并将空格替换为+

iOS UrlSession.shared.dataTask删除utf-8“ +”字符并将其替换为“”

如何将javascript属性删除为<a>标签并将其替换为其他jQuery属性?

删除一个负保证金并将其替换为其他值

是否可以删除默认终端并将其替换为其他终端(例如终结器或术语)?

CSV文件处理-删除引号并将逗号分隔符替换为制表符

如何完全删除更新的 hplip 并将其替换为 18.04 中来自 Ubuntu 存储库的版本?

从数据框列中删除字符串短语并将其替换为 python

如何删除应用程序模块并将其替换为我自己的模块-Angular 8

查找文本并替换为索引

.htaccess 替换 url 参数值

通过索引将字符串参数替换为数组值

字符串数组随机删除3并替换为“”但保留原始索引