Skip to content

Regions since 2.6 ​

Regions let one site serve several countries or markets from the same pages. A page keeps one content tree; a region can override fields per locale, and the URL carries the region as a prefix, /ch-de/about for Switzerland in German next to /de-de/about for Germany. Shopify stores can map to regions so prices and availability follow the market.

Regions are a core feature behind a module switch, not a module directory of their own.

  • Module key region
  • Default off
  • Switch EVOLVE_MODULE_REGION=true, also the Developers tab in Settings; see Modules
  • Panel /evolve/region, under System in the user menu
  • Since 2.6

Configuration ​

VariableDefaultPanelEffect
EVOLVE_MODULE_REGIONfalseDevelopers tabSwitches regions on.
EVOLVE_REGION_REMOVE_DEFAULT_PREFIXfalseGeneral tabServe the default region without its prefix, so /about instead of /ch-de/about.

In the panel ​

Regions (/evolve/region): a region has a name, a code that becomes the URL prefix (ch-de), a default flag, the locales it allows and a fallback locale. Only one region is the default.

On a page, the region select assigns the page to a region. The editor then shows the locales of that region, and assigning a region copies the existing content into the region's fallback locale without overwriting anything (since 2.11). Block fields can carry region overrides, including repeatable fields. Navigations are per region; saving a navigation forgets the cached tree of every region.

On the site ​

A request to /{region}/{locale-path} resolves to the page and renders it with the region's overrides. The hreflang alternates and the x-default link respect the locales a region allows, see SEO and Head. The sitemap lists the region paths.

Commands ​

CommandDoes
evolve:normalize-route-regions [--dry-run]Recomputes route paths and region IDs from each record's own region and creates redirects for every path that changed. Run after moving pages between regions in bulk or after enabling regions on an existing site.
evolve:seed-region-content [--page=*] [--dry-run]Copies block content of region pages from locales their region does not allow into the region's fallback locale, filling empty fields only. For pages assigned to a region before 2.11.
evolve:remove-prefixesRemoves the de/ prefix from all routes and creates redirects. For single-language sites that drop the locale prefix.

Every command that rewrites paths creates system redirects, so old URLs keep resolving. Run with --dry-run first on a copy of the live database.

Verifying ​

Open a page under its region prefix and under another region: the overridden fields differ, everything else is shared. php artisan route:list --path=evolve/region shows the panel route. With EVOLVE_REGION_REMOVE_DEFAULT_PREFIX=true, the default region's pages answer without the prefix and the prefixed URL redirects.