1

When sending an HTTP request with a Range header to Magnolia I get a Response with Content-Length: 0:

        curl -I -X GET \
          http://localhost:8080/ \
          -H 'Accept-Encoding: gzip, deflate' \
          -H 'Cache-Control: no-cache' \
          -H 'Range: bytes=0-2000'
        HTTP/1.1 206
        Set-Cookie: SID=C36D961EC92D152724BBCD0C34EC6536; Path=/; HttpOnly
        X-Magnolia-Registration: Registered
        Accept-Ranges: bytes
        Cache-Control: no-cache, no-store, must-revalidate, max-age=0
        ETag: 8B4901E7DD862E5E74287A0F538DCDDFEB78DE77
        Content-Range: bytes 0-2000/23529
        Content-Encoding: gzip
        Vary: Accept-Encoding
        Pragma: no-cache
        Expires: Thu, 01 Jan 1970 00:00:00 GMT
        Last-Modified: Thu, 19 Dec 2019 08:52:49 GMT
        Content-Type: text/html;charset=UTF-8
        Content-Length: 0
        Date: Thu, 19 Dec 2019 08:52:49 GMT

However, when I disable the Magnolia Cache Module I get the expected response:

/server/filters/cache -> enabled: false

        curl -I -X GET \
          http://localhost:8080/ \
          -H 'Accept-Encoding: gzip, deflate' \
          -H 'Cache-Control: no-cache' \
          -H 'Range: bytes=0-2000'
        HTTP/1.1 206
        Set-Cookie: SID=FF557EC1F0653E5CBD81A57D599091AE; Path=/; HttpOnly
        X-Magnolia-Registration: Registered
        Accept-Ranges: bytes
        ETag: 2A9DE4F4B2ACDDE22BAC3C07784CD65693574B67
        Content-Range: bytes 0-2000/2147483647
        Content-Type: text/html;charset=UTF-8
        Content-Length: 2001
        Date: Thu, 19 Dec 2019 08:51:49 GMT

I got the problem that the Facebook crawler isn't able to detect any open graph meta tags when trying to crawl my website. I think the reason is the above described problem with sending range requests to Magnolia (What the Facebook crawler does).

My Open Graph tags are properly set (Working for opengraphcheck and Twitter Card Validator).

I'm using Magnolia 5.7.1.

puhlerblet
  • 113
  • 5

1 Answers1

2

The simplest work around is to configure request header voter to bypass cache when range header is present.
See RequestHeaderPatternSimpleVoter and/or RequestHeaderPatternRegexVoter for more details on how to set it, but I would still consider it workaround and not final solution.

It seems weird that such thing should be happening. Could you replicate it against e.g. https://demo.magnolia-cms.com?

Jan
  • 4,369
  • 14
  • 25
  • 1
    Using the ```RequestHeaderPatternRegexVoter``` resolves the issue, thanks! However, as you mention this is a workaround for an unexpected behavior which should not be happening. I could not reproduce the issue on https://demopublic.magnolia-cms.com which is running on Magnolia 6.1.4. Maybe my older version (5.7.1) causes the issue. I reported the issue to Magnolia support. – puhlerblet Dec 23 '19 at 09:05
  • Thanks, resolves my issue too, inserting an url in a LinkedIn entry failed before (error in LinkedIn Post Inspector). Magnolia 5.7.9. Checking now Magnolia support. – Nicole Stutz Oct 08 '21 at 11:48