如何在 nuxt url 中删除 /?fbclid=...

how to remove /?fbclid=... in nuxt url

你好,我想从我的主机 url 中删除 facebook 分析强制 url 参数 /?fbclid= https://www.example.com/?fbclid=...,当通过单击 url,问题是如果使用此参数重定向,nuxt-link-exact-active class 不会应用。 谢谢

我终于可以用这个解决它了:

methods: {
  removeFacebookHook() {
    var fbParam = 'fbclid';

    // Check if param exists
    if (location.search.indexOf(fbParam + '=') !== -1) {
      var replace = '';

      try {
        var url = new URL(location);
        url.searchParams.delete(fbParam);
        replace = url.href;

        // Check if locale exists
        if (window.location.href.indexOf(this.locale) > -1) {
          window.history.replaceState(null, null, "/" + this.locale);
        };

      } catch (ex) {
        var regExp = new RegExp('[?&]' + fbParam + '=.*$');
        replace = location.search.replace(regExp, '');
        replace = location.pathname + replace + location.hash;
      }

      history.replaceState(null, '', replace);
    }
  }
}

借助这个 post modiyf urls 我让 nuxt-i18n 路由语言环境与 href.indexOf 一起工作! 不幸的是,nuxt alwaysRedirect 让我删除了切换器...

在像 https://www.example.com/?fbclid=... 这样的简单情况下,其中 fbclid 是唯一的参数,它应该是一个微不足道的 Javascript,例如:

 <script>
  // ideally this is on top of page; works on bottom as well

  if(/^\?fbclid=/.test(location.search))
     location.replace(location.href.replace(/\?fbclid.+/, ""));

 </script>

这会检查 ?fbclid=... 是否是 URL 搜索参数,并导航到删除该部分的同一位置。


也可以删除任何搜索参数而不检查 fbclid

 <script>
   if(location.search) location.replace(location.href.replace(/\?.+/, ""));
 </script>

对于像 https://www.example.com/?fbclid=... 这样的简单情况,其中 fbclid 是第一个也是唯一的参数,可以通过简单的服务器配置来完成。

因此,例如将其放入 .htaccess 文件中:

RewriteEngine on
<if "%{QUERY_STRING} =~ /^fbclid=/">
 RewriteRule  .  %{REQUEST_URI}?   [R=301,L]
</if>

注意 %{REQUEST_URI} 之后的 ?。它会完全删除查询字符串。


在其他情况下(fbclid 附加到其他参数)此示例不执行任何操作 - 为此需要更复杂的代码。

我使用 JavaScript 以一种非常简单的方式解决了 Facebook 查询字符串... 在您的布局页或母版页中包含此脚本

  //facebook Route Script for Query string
   function faceBookQuery() {
       addEventListener('fetch', event => {
           let url = new URL(event.request.url)

           if (url.searchParams.has('fbclid'))
               url.searchParams.delete('fbclid')

           event.respondWith(
               fetch(url, event.request)
           );
       });
    }

乐在其中

Il 有一个 #section 就像 https://www.example.com/file?fbclid=...#section(pervers facebook...)然后由 j.j 提出的代码。给出 https://www.example.com/file。 更好的代码是

if(/^\?fbclid=/.test(location.search))
  location.replace(location.href.replace(location.search, ""));

N.B。删除任何搜索参数而不检查 fbclid 将阻止通过 url...

传递变量

感谢j.j。带路。