【问题标题】:.htaccess redirect facebook crawlers except privacy policy.htaccess 重定向 Facebook 爬虫,隐私政策除外
【发布时间】:2021-04-05 04:10:43
【问题描述】:

我有一个 SPA 应用,其中包含用于在 Facebook 上共享的动态内容,因此我使用 htaccess 中的以下规则将 Facebook 爬虫重定向到一个不错的静态页面:

<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit.*$
RewriteRule ^(.*)$ https://sharing.mysite.tld/api/share/$1 [L]

这很好用!但是有一个问题......我无法让我的应用上线,因为 Facebook 需要一个指向隐私政策、条款和条件等的链接——而且这些也会被重定向!!

我需要忽略某些 URL - /docs/ 中请求的任何内容 - 从上述规则 编辑:以便正常遵循包含 /docs/ 的 URL(无重定向,只是正常提供)。 我无法让 .htaccess 了解忽略规则。我原以为会这样做(感谢https://stackoverflow.com/a/1848579/4881971):

    RewriteRule ^(docs)($|/) - [L]

所以我会认为我的 .htaccess 文件看起来像这样:

<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit.*$
RewriteRule ^(docs)($|/) - [L]
RewriteRule ^(.*)$ https://sharing.mysite.tld/api/share/$1 [L]

但是当我在https://mysite.tld/docs/privacy 上使用 Facebook 对象调试器时,我得到了 404!它重定向到https://sharing.mysite.tld/api/share/docs/privacy

如何保留规则但忽略来自 mysite.tld/docs/* 的请求?谢谢。

【问题讨论】:

    标签: apache facebook .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    您能否尝试以下操作,请确保在测试您的 URL 之前清除浏览器缓存。这认为您的 uri 从 docs 开始。

    <IfModule mod_rewrite.c>
    RewriteEngine ON
    RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit.*$ [NC]
    RewriteCond %{REQUEST_URI} ^/docs [NC]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^(.*)$ https://sharing.mysite.tld/api/share/$1 [L]
    


    如果您想传递文档可能在 uri 中的任何位置出现的 URL(而不是从第一个解决方案寻找的开始),请尝试遵循规则。

    <IfModule mod_rewrite.c>
    RewriteEngine ON
    RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit.*$ [NC]
    RewriteCond %{REQUEST_URI} docs [NC]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^(.*)$ https://sharing.mysite.tld/api/share/$1 [L]
    

    【讨论】:

      【解决方案2】:

      在否定条件下这样处理:

      RewriteEngine On
      
      RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit [NC]
      RewriteRule %{THE_REQUEST} !\s/+docs [NC]
      RewriteRule ^ https://sharing.mysite.tld/api/share%{REQUEST_URI} [L,R=301,NE]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-20
        • 2012-07-03
        • 2012-04-25
        • 2014-08-13
        • 1970-01-01
        • 1970-01-01
        • 2016-02-01
        相关资源
        最近更新 更多