=== Domain Mapping System | Create Microsites with Multiple Alias Domains (multisite optional) ===
Contributors: maartenbelmans, patrickposner
Author URI: https://domainmappingsystem.com/?utm_source=wporg&utm_medium=readme&utm_campaign=dms
Plugin URI: https://domainmappingsystem.com/?utm_source=wporg&utm_medium=readme&utm_campaign=dms
Donate link: https://domainmappingsystem.com/?utm_source=wporg&utm_medium=readme&utm_campaign=dms
Tags: multiple domains, multidomain, multisite, subdomain, alias
Requires at least: 5.1
Tested up to: 7.0
Stable tag: 2.2.7
Requires PHP: 7.4
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

Domain Mapping System is the most powerful way to manage alias domains and map them to any published resource - creating Microsites with ease!

== Description ==

**Domain Mapping System** is the best way to manage multiple domains on your WordPress site and point them to any published resource, including Posts, Pages, Products, Categories, or other Custom Post Types and Taxonomies.

Whether you’re just looking for the simplicity of multiple domain mapping in a single WordPress site, or you’re creating a more complex multi-pronged WordPress project, [Domain Mapping System](https://domainmappingsystem.com?utm_source=wporg&utm_medium=readme&utm_campaign=dms) can save a great deal of time and hassle over using multisite or creating standalone WordPress installs. 

[youtube https://youtu.be/mznQjxemxcE]

## EXAMPLE USE-CASES
* Targeting specific audiences with branded domains, such as by country or language. 
* Organizations that want a different section of their website for each of their physical locations. 
* Expanding site reach to new audiences/locations without changing your primary domain. 
* Saving time over Multisite, or supplementing a Multisite with Microsite capabilities 

🎬 [TRY THE LIVE DEMO >](https://domain-mapping-system-demo.xyz/)

🌱 [PLANS & PRICING >](https://domainmappingsystem.com/?utm_source=wporg&utm_medium=readme&utm_campaign=dms#pricing)

🚧 [ROADMAP >](https://domainmappingsystem.com/roadmap/?utm_source=wporg&utm_medium=readme&utm_campaign=dms)

## 🔢 MULTIPLE DOMAINS IN A SINGLE WORDPRESS SITE
> Assign content to each domain from a single WordPress Admin Dashboard. 

## 🚀 MAP UNLIMITED ALIAS DOMAINS COMPLETELY FREE
> Manage and map as many alias domains as you want for complete control. 

## 🗺️ MAP CONTENT TO ANY DOMAIN
> Map alias domains to **any Post, Page, Product, or Custom Post Type**, including Blog Categories, Products Archive, custom taxonomies, and more. 

## 🔍 OPTIMIZE YOUR SEO & MARKETING STRATEGY
> Optimize your site for search engines with full Yoast SEO integration, including the option to add custom Titles, Descriptions, and Keywords, as well as Sitemap for each mapped domain.  

## 🔀 SUBDOMAIN MAPPING 
> Map subdomains to your primary WordPress site, so you don’t have to create a second WordPress install or buy a second domain.

## 🌐 MULTISITE SUPPORTED
> Activate Domain Mapping System on your WordPress MU multisite network for each of your network sites. Now, multisite is even more powerful with multiple domain management for every site on your network, so you can enable BYOD (Bring Your Own Domain) for your users. 

## 🇺🇳 LANGUAGE PER DOMAIN 
> Activate the TranslatePress multilingual plugin and attach each language to a specific domain. Even the language switchers work perfectly out of the box. [PRO]

## 🧩 CREATE “MICROSITES” - GROUP CONTENT BY DOMAIN
> Create microsites by grouping your published resources (pages, posts, products, custom post types) around a specific domain - a much less complex multisite alternative. [PRO]

[youtube https://youtu.be/6jrP8BVxlpQ]

## 🌍 GLOBAL DOMAIN MAPPING
> Easily map every unmapped page on your site in one click - so visitors only see mapped domains for all content on your site. [PRO]

## 🗂 SUBDIRECTORY MAPPING
> Map subdirectory URLs of your main site. E.g. - your-site.com/landing-page/ can be set to display the content from the post your-site.com/example-page/landing-page/. [PRO]

## 📚 ARCHIVE, CATEGORY, AND CUSTOM TAXONOMY MAPPING
> Want to map a specific Blog category and all its posts to a different domain automatically? Now you can! Map a domain to any archive, category, or custom taxonomy created by a plugin or theme. [PRO]

## ↪️ FORCE REDIRECT TO MAPPED PAGES
> Want to hide the “unmapped” version of your page? There’s a checkbox that allows you to “Force redirect all visitors to the mapped version of a page.” [PRO]

## 🛒 WOOCOMMERCE INTEGRATION
> Map your Shop page and all Products. You can also map a specific product Category and all the products in the category automatically. [PRO]

## 🛒 ALIAS & SUBDOMAIN AUTHENTICATION
> Allow users to login to Alias Domains or Subdomains of your site, effectively acting as a standalone site for any protected login area, such as WooCommerce Account pages. [PRO]

## ⏩ WELL-DOCUMENTED SETUP PROCESS
> Domain Mapping System requires a bit of knowledge about DNS and server side configuration, so we've helped out by [documenting the simple steps](https://docs.domainmappingsystem.com/requirements/server-configuration) you'll need to take. Contact support with any questions.

## 🎨 BRANDING PER DOMAIN (FAVICON)
> Customize the favicon that appears in your website visitors’ browser for each domain mapped to your site. 

## 🔒 SECURE ALL YOUR DOMAINS
> Use SSL across all your domains with one WordPress install (some server configuration required). 

## ⚒️ DEVELOPER FRIENDLY
> Take advantage of the [REST API](https://docs.domainmappingsystem.com/features/rest-api) to add/delete domains automatically.

## DETAILED USE-CASE
**Let's say you own 2 domains:** 
> Primary domain (WordPress site): **my-awesome-site.com**
> Secondary domain: **my-cool-site.com**

**With Domain Mapping System, you can map the secondary domain to any Post, Page, Product, or Custom Post Type on your primary site:**  
> **my-cool-site.com** will display content from 
>**my-awesome-site.com/any-post-you-want/**

**The plugin does not redirect visitors - the browser URL bar displays the secondary domain my-cool-site.com**. This happens using some awesome code, so feel free to explore 😊 

### IMPORTANT CONFIGURATION INSTRUCTIONS
**In order for the plugin to work:**

1. You must set DNS records (both domain A Records should point to the same server) 

2. You must add your mapped domains as an Alias in cPanel or in your server configuration (the root folder for both domains should be your WP install) 

For detailed instructions, please see our [Documentation](https://docs.domainmappingsystem.com). 

## FREE FEATURES
* Map unlimited domains
* Map domains to any post, page, product, or custom post type generated by other plugins
* Map subdomains 
* Multisite supported (requires custom sunrise.php, please see our [documentation](https://docs.domainmappingsystem.com/features/multisite-integration).
* Query string parameters (used for UTMs or search results) are supported out of the box. 

## PRO FEATURES
* Create “Microsites” - set a different homepage and inner pages for each domain
* Global Domain Mapping - automatically map all published content on your site
* Subdirectory mapping
* Force redirect visitors mapped domains
* Favicon per domain
* WooCommerce Integration for Shop, Checkout, Cart pages
* Custom <head> code per domain
* Global Parent Page Mapping
* Global Archive Mapping
* Global/Selective URL Rewriting
* Yoast SEO Integration
* 1on1 support

## WHAT CAN I DO WITH EACH FEATURE?
**[Unlimited Domain Mapping](https://docs.domainmappingsystem.com/features/domain-mapping)**: Expand your online presence without limitations, enabling you to manage multiple domains effortlessly from a single WordPress Dashboard. 

**[Flexible Mapping Options](https://docs.domainmappingsystem.com/features/global-archive-category-mapping)**: Seamlessly map domains to various types of content, including posts, pages, products, custom post types, and more, enhancing your site's organizational structure and user experience.

**[Subdomain Mapping](https://docs.domainmappingsystem.com/features/mapping-with-subdomains)**: Easily extend your site's reach by mapping subdomains, enabling you to efficiently manage diverse content.

**[Multisite Compatibility](https://docs.domainmappingsystem.com/features/multisite-integration)**: Harness the power of WordPress Multisite while effortlessly integrating with the Domain Mapping System, streamlining management of multiple domains across multiple network sites.

**[Microsite Creation](https://docs.domainmappingsystem.com/features/creating-microsites-multisite-alternative)**: Tailor each domain with unique homepages and inner pages, empowering you to create distinct online experiences catered to specific audiences or purposes.

**[Automatic Global Domain Mapping](https://docs.domainmappingsystem.com/features/global-domain-mapping)**: Simplify domain management by automatically mapping all published content, ensuring consistency and coherence across your entire site.

**[Subdirectory Mapping](https://docs.domainmappingsystem.com/features/subdirectory-mapping)**: Organize your site structure effectively by mapping domains to specific subdirectories, facilitating intuitive navigation and content discovery.

**[Visitor Redirection](https://docs.domainmappingsystem.com/features/redirect-site-visitors-to-mapped-domains)**: Enhance user experience and maintain brand consistency by seamlessly redirecting visitors to the proper mapped domain based on the domain being viewed.

**[Customized Favicon Support](https://docs.domainmappingsystem.com/features/favicon-per-domain)**: Reinforce your brand identity across multiple domains with custom favicons, enhancing recognition and user engagement.

**[WooCommerce Integration](https://docs.domainmappingsystem.com/features/global-product-mapping-for-woocommerce)**: Seamlessly integrate with WooCommerce, optimizing the shopping experience by mapping essential pages such as Shop, Checkout, and Cart across domains.

**[Query String Support](https://docs.domainmappingsystem.com/features/query-string-parameters)**: Maximize marketing effectiveness by preserving UTM parameters on mapped domains, enabling accurate tracking and analysis of user interactions.

**[Global Parent Page Mapping](https://docs.domainmappingsystem.com/features/global-parent-page-mapping)**: Ensure consistency in site structure and navigation by globally mapping parent pages across domains, simplifying content organization.

**[URL Rewriting Flexibility](https://docs.domainmappingsystem.com/features/url-rewriting)**: Tailor URL structures to meet specific requirements or preferences, enhancing SEO optimization and user-friendly navigation.

**[Yoast SEO Integration](https://docs.domainmappingsystem.com/integrations-and-compatibility/wordpress-plugins/yoast-seo)**: Augment your site's search engine visibility and performance with seamless integration with Yoast SEO, enabling comprehensive optimization across mapped domains.

🎬 [TRY THE LIVE DEMO >](https://domain-mapping-system-demo.xyz/)

🌱 [PLANS & PRICING >](https://domainmappingsystem.com/?utm_source=wporg&utm_medium=readme&utm_campaign=dms#pricing)

🚧 [ROADMAP >](https://domainmappingsystem.com/roadmap/?utm_source=wporg&utm_medium=readme&utm_campaign=dms) - Feel free to submit feature requests!

== Installation ==

Starting with Domain Mapping System consists of 3 steps: Configuring your server, installing the plugin, and mapping domains. 

### SERVER CONFIGURATION REQUIREMENTS

* Please see our [Documentation](https://docs.domainmappingsystem.com/requirements/server-configuration) to configure your server properly. 

### INSTALL DOMAIN MAPPING SYSTEM FROM WITHIN WORDPRESS

1. Visit the plugins page within your dashboard and select ‘Add New’;
1. Search for ‘Domain Mapping System’;
1. Install & Activate Domain Mapping System; 
1. Go to ‘after activation’ below.

### INSTALL DOMAIN MAPPING SYSTEM MANUALLY

1. Upload the ‘domain-mapping-system’ folder to the /wp-content/plugins/ directory;
1. Activate the Domain Mapping System plugin through the ‘Plugins’ menu in WordPress;
1. Go to ‘after activation’ below.

### AFTER ACTIVATION

1. You should be redirected to the settings area. 
1. Add your alias domain and the published resource you want to use to display content for the alias domain. 
1. Visit your alias domain!
1. Be sure to visit our [Troubleshooting Guide](https://docs.domainmappingsystem.com/getting-started/troubleshooting) for any issues. 

== Frequently Asked Questions ==

= What is Domain Mapping? =

Domain Mapping is the process of adding multiple domains to a single website. Depending on your Content Management System or coding framework, mapping multiple domains to your site may be a more simple or more complex process. With WordPress, it’s very easy to map multiple domains to a single WordPress installation using either multisite or a plugin like Domain Mapping System. 

= What is a mapped domain? =

A mapped domain in WordPress is a domain that has a specific page or group of pages associated with it. A mapped domain is usually not the website’s primary domain, but is usually an Alias or Addon Domain that is mapped to the primary site domain. 

The mapping then takes place at the website level, as the website should be configured to serve content for both the mapped domain and primary domain. 

= How do I add multiple domains to a WordPress website? = 

There are a few steps to map multiple domains to your WordPress website, including:

1. Configure your DNS Records.
2. Setup your server with an Alias or Addon Domain.
 
The next step would be mapping content properly for your mapped domains. 

Read more in our [Documentation](https://docs.domainmappingsystem.com/getting-started/how-to-map-domains).

= How do I map a domain in WordPress? =

There are 3 steps to mapping a domain in WordPress:

1. Configure your DNS settings.
2. Set up your server properly for an Alias or Addon domain.
3. Install Domain Mapping System and map domains to the desired content. 
 
Once you’ve followed these steps, you should then be able to navigate your website with the content being served for your mapped domains.

Read more in our [Documentation](https://docs.domainmappingsystem.com/getting-started/how-to-map-domains).

= How much does Domain Mapping cost? Is it free? =

Yes! Domain mapping is free in WordPress. You can map unlimited domains to your WordPress website depending on your server configuration. To create Microsites with Domain Mapping System and access other powerful features, please see our [pricing](https://domainmappingsystem.com/?utm_source=wporg&utm_medium=readme&utm_campaign=dms#pricing). 

= What are DNS Records? =

DNS stands for Domain Name System. The purpose of DNS is to translate your server’s IP address into a friendly, easily-legible name that humans can remember. It’s much easier for humans to remember a name than it is a string of numbers.

DNS Records direct the different types of traffic for a domain name to the proper server(s). Each DNS Record corresponds to a different type of service or traffic your domain might receive.

For example:

A records are set for “hosts” and standard website traffic
CNAME records are set as “Aliases” or Canonical records
MX records direct email traffic
TXT records provide many useful options, like domain ownership verification and enhanced security options
 
This is not a complete list. You can review all the different [DNS Record Types](https://simpledns.plus/help/dns-record-types).

= Where is my DNS hosted? =

Your DNS is hosted where your Name Servers are pointing. Your Name Servers are specified with your Domain Name Registrar. 

If you’ve just purchased your domain, your DNS host will be your Domain Registrar. If you need to configure a website or email for your domain, you will need to change your DNS settings with your DNS host. 

= What is a DNS Zone? =

A DNS Zone is where your DNS is managed. A DNS Zone is specified by your Name Server records.

Your DNS zone is where you should manage DNS records to publicly identify different services for your domain on the internet. E.g. – If you need to set up a website or email for your domain, you can set up A Records, CNAME Records, or MX Records within your DNS Zone. 

If you are unsure where your DNS zone is set, contact your Domain Name Registrar or run a test of your Name Server records on a website like https://whatsmydns.net/. 

= How do I configure DNS for WordPress?= 

To set up DNS for your WordPress website, you must point your DNS A record to your website hosting server. For example, if your website hosting server has IP address 123.456.789.0, go to your DNS Zone (specified by where your Name Servers are pointing), and modify the A Record.

The A Record is commonly denoted by an “@” symbol or by typing in the full URL in your DNS settings. You should also configure an A Record or CNAME record for the WWW version of your site, with CNAME being the preferred option if you want all website visitors to navigate to your site without WWW in the URL.

= Why isn't my site appearing after configuring DNS settings? =

When you change your DNS settings, it takes up to 24-48 hours for those changes to propagate across the internet. This is called propagation time, and it’s a standard delay that Internet Service Providers around the world need in order to detect DNS changes. Frequently, DNS changes can propagate within a few hours to most locations. 

If you already have a website, it’s recommended to clear your browser cache after making DNS changes, as sometimes browsers will cache an old copy of a website from the previous server. 

= What is website caching? =

Caching is a mechanism by which a browser stores data temporarily in order to serve it more quickly in the future. 

There is usually a limited time frame associated with a caching script, which determines when the cache should be refreshed automatically. E.g. – Every 4 hours or 8 hours.

You can force the browser cache to be cleared manually, and the process is slightly different depending on your browser and the version of the browser. To find the latest process, run a Google search for “How to clear browser cache for” and then enter your browser type. 

= What is server caching? =

Caching is a mechanism by which a server stores data temporarily in order to serve it more quickly in the future. Server caching is managed by Apache or NGINX, depending on your server configuration. 

There is usually a limited time frame associated with a caching script, which determines when the cache should be refreshed automatically. E.g. – Every 4 hours or 8 hours.

You can force the server cache to be cleared manually, and the process is slightly different depending on your server access rights, server interface (cPanel, managed hosting, etc), and tools available to you (Command Line Interface access – CLI, etc). 

For the latest process based on your hosting or server configuration, contact your hosting company or try running a Google search for “How to clear server cache on” and then enter your hosting company and/or the brand of your server interface (cPanel, etc). 

= Is Domain Mapping System compatible with caching plugins? =

Yes. Some plugins may require additional configuration. Please reference our Documentation regarding [Integrations & Compatibility](https://docs.domainmappingsystem.com/integrations-and-compatibility/wordpress-plugins). 

= What is an Alias Domain? =

Definition
An Alias Domain is a domain name that can be used as an alternate name for another domain.

For example, if you have two domain names pointing to your website, you can “map” the second domain as an “Alias” of the primary domain. Website visitors will see the Alias in their URL bar when navigating the site.

Relevance to WordPress
When you have a WordPress website (or website of any kind), you can assign Aliases to your website. However, not all servers are ready “out-of-the-box” to map domains to a single website and require additional configuration.

Furthermore, your WordPress website needs some extra configuration to “map” each alias to a specific “post” in WordPress (or group of posts).

Posts can include any default post type that comes out of the box with WordPress, like Pages, Posts, Products, etc, or any Custom Post Type created by other plugins or themes.

End Goal: Multiple domains on a single WordPress site
At the end of the day, the purpose of creating an Alias domain on your server is to map multiple domains to a single WordPress installation.

Domain Mapping System let’s you handle the mapping of domains to specific posts after you’ve set up your server properly.

= ​​What hosting companies are supported? =

Many hosting companies don’t support mapping multiple domains to your WordPress website. This is usually because managed hosts prefer to have control over how many domains are pointing to their servers. 

Please see our [Documentation](https://docs.domainmappingsystem.com/faqs/what-hosting-companies-are-supported) for a list of hosting companies we’ve found that are compatible with domain mapping and Alias Domains. 

= Why does my website show "Your connection is not private"? =

This error means that your website does not have an SSL certificate properly configured. When you point a domain to a website hosting server, the server needs to have some kind of SSL certificate installed on it in order for the website to be secure. If the server doesn’t have an SSL certificate properly configured for your website, it will give an insecure website error on your browser. 

= Why isn't my Alias domain secure? =
By default, hosting servers will generally support securing the primary domain registered on a server with an SSL certificate out-of-the-box.

Once you’ve added an Alias domain to your server, you should be able to add an SSL certificate for that domain, which is necessary to secure each domain.

For more information about securing multiple domains on a single hosting server, see our [Documentation](https://docs.domainmappingsystem.com/common-issues/ssl-for-multiple-domains). 

= Are multisite networks supported? = 

Yes - multisite networks are 100% supported in both the Free and PRO versions of the plugin. Just install the plugin, configure the proper settings, and activate it on your network. Then, all your network sites can map their own domains. 

Read about the steps to configure multisite in our [Documentation](https://docs.domainmappingsystem.com/features/multisite-integration). 

= I've found a bug! What now? =

Please [contact support](https://domainmappingsystem.com/support/?utm_source=wporg&utm_medium=readme&utm_campaign=dms) to report the bug with any relevant screenshots/videos/notes.

= Is Domain Mapping System compatible with WooCommerce? =

Partly - you can currently map to Products and Product Archives. Full support is on our roadmap. 

= Is Domain Mapping System compatible with Page Builders? =

Yes, you can use any page builder. 

= Is Domain Mapping System compatible with WPML, Polylang, or other multilingual plugins? =

At this point, no. But it's on our Roadmap! 

= Is Domain Mapping System compatible with SSL/HTTPS? =

Definitely. The SSL certificate(s) installed on the server must be setup for both domains, of course. When adding a domain alias, many cPanel servers will auto-generate SSL certs. 

* Warning: Either All or None of the domains must have an SSL certificate. It's not possible to display content from a secured site through an unsecured domain. 

= Why are custom styling, fonts, or icons not showing up? =

CSS files might have your primary domain hard-coded into them, which means that many servers will block cross-domain resources because of CORS configuration (Cross-origin Resource Sharing). These articles provide more information on how to configure CORS and prevent this issue:
[CORS-Setup on Apache servers](http://enable-cors.org/server_apache.html)
[CORS-Setup on Nginx servers](https://enable-cors.org/server_nginx.html)

= Why do I appear logged-out of the WordPress Dashboard when visiting mapped domains? =

The WordPress login system stores your login state using cookies, which are tied to the primary domain of the site. There is no way to manage your WP-Admin via another domain at this point in time. 

= Is Domain Mapping System GDPR compliant? =
Yes. You have complete control over your data. [Contact us](https://domainmappingsystem.com/support/?utm_source=wporg&utm_medium=readme&utm_campaign=dms) any time to remove your data or choose NOT to opt-in upon activating the plugin. If you choose to opt-in so we can improve our product, we use Freemius to store user data, which is [GDPR ready](https://freemius.com/blog/gdpr-wordpress-plugin-theme/). 

= I'm a developer and want to contribute to Domain Mapping System. Where can I do it? =

We really appreciate your input! We currently don't have a public repo, but you can [contact us](https://domainmappingsystem.com/support/?utm_source=wporg&utm_medium=readme&utm_campaign=dms) directly with any feature/code suggestions, and we can give you a branch to work on or integrate your suggestions into a future release 😊  

== Screenshots ==

1. Domain Mapping System Settings Area
2. Adding Multiple Domains to WordPress
3. Creating a Microsite (PRO) - Multisite Alternative / Supplement 
4. Selecting Available Post Types for Mapping
5. WordPress Subdirectory Domain Mapping (PRO)

== Changelog ==

= 2.2.7 =

* Fix TranslatePress mapped locale switching
* Fix Elementor Loop Grid post context on mapped domains

= 2.2.6 =

* Freemius SDK upgrade
* Fix TranslatePress mapped locale detection
* Fix nested child URLs for parent mappings
* Fix overlapping domain replacements
* Include global shop products in Yoast sitemaps
* Fix WooCommerce mapped login redirects
* Fix Elementor listing context on mapped domains

= 2.2.5.4 =

* Improvement: improved code performance by up to 50% on larger sites.
* Fix: fixed a PHP memory issue.
* Fix: fixed blank WooCommerce category pages.
* Other: updated minimum PHP version to 7.4.

= 2.2.5.3 =

* avoid fatal error when loading extensions early (required for TP)

= 2.2.5.2 =

* TranslatePress: fixed primary language redirection back to the original domain
* Yoast: fix links in mapped XML sitemaps
* prevent canonical redirect (unmapped scenario fallback)
* TranslatePress: fixed language switcher, redirection and switching stability on mapped domains
* TranslatePress: redirect primary language back to original domain when not explicitly mapped
* TranslatePress: improved link generation logic for mapped domains (slug preservation)
* TranslatePress: hardened integration against early initialization fatals
* TranslatePress: fixed asset 404 errors on mapped domains
* TranslatePress: improved mapping detection for language-specific links
* Helper: improved mapping specificity to prefer longest path matches
* Core: fixed case-correction redirects to stay on the mapped domain

= 2.2.5.1 =

* hotfix: wait for init on Elementor integration

= 2.2.5 =

* TranslatePress: fixed redirection loops and subdirectory conflicts for language-per-domain setups
* TranslatePress: improved language switcher rewriting to correctly use mapped domains
* TranslatePress: fixed fatal errors and PHP 8.1+ deprecation warnings in SEO Pack integration
* TranslatePress: added support for ACF link and URL field rewriting
* Elementor: fixed missing styles on subdomains by rewriting asset URLs in the uploads directory
* Elementor: ensured correct post context and template loading on mapped domains
* Elementor: improved integration to support both Free and Pro versions
* Global Mapping: fixed issues where global mapping domains were redirected to the primary domain
* Micro-sites: prevented unmapped pages from being accessible on mapped domains
* Search: improved compatibility with Relevanssi and AJAX search on mapped domains
* Admin: fixed "white screen" error on settings page caused by Freemius initialization issues
* URI Handler: improved host and path replacement accuracy for asset and content rewriting
* Helper: implemented robust path matching with trailing slash normalization
* Yoast SEO: fixed empty mapping modal display anomaly
* Yoast SEO: improved sitemap generation on mapped domains
* Redirection: preserved UTM and other query parameters during redirections
* URL Rewriting: improved nav menu link rewriting for all item types
* URL Rewriting: added Global Domain Mapping support for term and post type links
* Multisite: improved sunrise.php to respect native site mappings and expanded path exemptions
* Added support for domain mapping based on page taxonomies
* Fixed taxonomy key synchronization between settings UI and backend for non-default post types

= 2.2.4.3 =

* updated build files

= 2.2.4.2 =

* improved admin UI (segmented settings)
* navigation link rewrite improvements
* Rest API endpoint normalisation (save settings bug)
* Freemius SDK upgrade

= 2.2.4.1 =

* updated Freemius SDK
* improved slash handling in generate_url method
* TranslatePress: fixed PHP notice in integration
* TranslatePress support for 2-character ISO-codes
* Yoast SEO: fixed PHP notice (empty path)
* Yoast SEO: added XSL mapping support
* Yoast SEO fixed global mapping

= 2.2.4 =

* SDK upgrade

= 2.2.3 =

* improved Freemius SDK integration
* removed sub-settings pages
* moved upgrade URL to external site

= 2.2.2 =
* Bug fixes. 

See the full changelog in our [documentation](https://docs.domainmappingsystem.com/changelog/changelog). 
