Skip to content

URL with "special" characters, like ë #895

@holiday-jan

Description

@holiday-jan

Bug Report

We're experiencing some un-expected behaviour, that i can reproduce on a fresh Craft & Blitz install. Make sure server rewrites are active.

  • Create a section, only title field is enough, and create a twig view for it, so we can serve it
  • Create an entry with title tëst, so the slug will also have the ë
  • View in browser, and the cache (db & file) will be generated as expected

CraftCP, Blitz diagnostics, Tracked Pages:
Image
Generated cache file:
Image

Then in the browser, change the url and request the page without te ë, so like: /test. The following happens:

  • CraftCP, Blitz diagnostics, Tracked Page "tëst", is overwritten by slug test
  • The new page-cache is generated

So the situation is as follows:

CraftCP, Blitz diagnostics, Tracked Pages:
Image
Changed from tëst to test
Generated cache file:
Image
Both pages are here

When we now change the contents of the entry, Blitz will only update the current Tracked Page test, and leave the generated other cache file as is. So when we request the entry with the original url /tëst, it will serve the generated old cache via the server rewrite, and it's never refreshed.

Is there a setting we're missing, or is this an (un)known issue?

Hope you can help me. Thanks in advance!

Best regards,
Jan

Diagnostics Report

Application Info

  • PHP version: 8.3.30
  • Craft edition & version: Solo 5.10.3
  • Database driver & version: MySQL 8.0.40

Installed Plugins

  • Blitz: 5.12.9

Loaded Modules

  • sprig-core: putyourlightson\sprig\Sprig

Blitz Plugin Settings

{
    "debug": false,
    "hintsEnabled": false,
    "cachingEnabled": true,
    "refreshCacheEnabled": true,
    "refreshMode": 0,
    "includedUriPatterns": [
        {
            "enabled": "1",
            "uriPattern": ".*"
        }
    ],
    "excludedUriPatterns": [],
    "cacheStorageType": "putyourlightson\\blitz\\drivers\\storage\\FileStorage",
    "cacheStorageSettings": {
        "folderPath": "@webroot\/cache\/blitz",
        "compressCachedValues": ""
    },
    "cacheStorageTypes": [],
    "cacheGeneratorType": "putyourlightson\\blitz\\drivers\\generators\\HttpGenerator",
    "cacheGeneratorSettings": {
        "concurrency": "3",
        "useBasicAuth": "",
        "username": "",
        "password": ""
    },
    "cacheGeneratorTypes": [],
    "customSiteUris": [],
    "cachePurgerType": "putyourlightson\\blitz\\drivers\\purgers\\DummyPurger",
    "cachePurgerSettings": [],
    "cachePurgerTypes": [],
    "deployerType": "putyourlightson\\blitz\\drivers\\deployers\\DummyDeployer",
    "deployerSettings": [],
    "deployerTypes": [],
    "ssiEnabled": true,
    "ssiTagFormat": "<!--#include virtual=\"{uri}\" -->",
    "detectSsiEnabled": true,
    "esiEnabled": false,
    "cachedIncludePathParam": "p",
    "onlyCacheLowercaseUris": false,
    "cacheActionRequests": false,
    "queryStringCaching": 1,
    "includedQueryStringParams": [
        {
            "enabled": "1",
            "queryStringParam": ".*"
        }
    ],
    "excludedQueryStringParams": [
        {
            "enabled": "1",
            "queryStringParam": "gclid"
        },
        {
            "enabled": "1",
            "queryStringParam": "fbclid"
        }
    ],
    "apiKey": "",
    "generatePagesWithQueryStringParams": true,
    "purgeAssetImagesWhenChanged": true,
    "refreshCacheAutomaticallyForGlobals": true,
    "refreshCacheWhenElementMovedInStructure": true,
    "refreshCacheWhenElementSavedUnchanged": false,
    "refreshCacheWhenElementSavedNotLive": false,
    "refreshExpiredCacheAfterVisit": true,
    "cacheNonHtmlResponses": false,
    "trackElements": true,
    "trackElementQueries": true,
    "excludedTrackedElementQueryParams": [],
    "cacheDuration": null,
    "nonCacheableElementTypes": [],
    "sourceIdAttributes": [],
    "liveStatuses": [],
    "integrations": [
        "putyourlightson\\blitz\\drivers\\integrations\\CommerceIntegration",
        "putyourlightson\\blitz\\drivers\\integrations\\DatastarIntegration",
        "putyourlightson\\blitz\\drivers\\integrations\\SeomaticIntegration"
    ],
    "defaultCacheControlHeader": "no-store",
    "cacheControlHeader": "public, s-maxage=31536000, max-age=0",
    "cacheControlHeaderExpired": "public, s-maxage=5, max-age=0",
    "sendPoweredByHeader": true,
    "outputComments": true,
    "refreshCacheJobPriority": 10,
    "driverJobBatchSize": 100,
    "driverJobPriority": 100,
    "queueJobTtr": 300,
    "maxRetryAttempts": 10,
    "maxUriLength": 2048,
    "maxUriIndexLength": 767,
    "mutexTimeout": 1,
    "commands": [],
    "injectScriptEvent": "DOMContentLoaded",
    "injectScriptPosition": 3
}

Recommendations

  • ❌ Image transforms are configured not to be generated before page load.
  • ❌ Queue jobs are configured to run automatically via web requests.
  • ✅ Blitz is configured not to refresh cached pages when an element is saved but unchanged.
  • ✅ Blitz is configured not to refresh cached pages when an element is saved but not live.
  • ✅ No globals exist.
  • ✅ The @web alias is not used in the base URL of any sites.
  • ✅ The Async Queue plugin is not installed or enabled.
  • ✅ The blitz/cache/refresh-expired console command has been executed within the past 24 hours.

Site Tracking

  • Tracked Pages: 1
  • Tracked Includes: 0
  • Tracked Actions: 0
  • Tracked Query String Params: 0
  • Tracked Elements: 1
    • craft\elements\Entry: 1
  • Tracked Element Queries: 0
  • Tracked Tags: 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions