diff --git a/src/TideSiteHelper.php b/src/TideSiteHelper.php
index 1251fab..6a82f60 100644
--- a/src/TideSiteHelper.php
+++ b/src/TideSiteHelper.php
@@ -10,6 +10,7 @@
 use Drupal\node\NodeInterface;
 use Drupal\taxonomy\TermInterface;
 use Symfony\Component\DependencyInjection\ContainerAwareTrait;
+use Shaper\Util\Context;
 
 /**
  * Class TideSiteHelper.
@@ -708,4 +709,42 @@ public function getRouteCacheId($path, $site_id) {
     return $cid;
   }
 
+  /**
+   * Function to handle URL that belongs to other sites.
+   */
+  public function handleApiUrl($data, Context $context) {
+    /** @var \Drupal\tide_site\AliasStorageHelper $alias_helper */
+    $alias_helper = \Drupal::service('tide_site.alias_storage_helper');
+
+    $data['origin_alias'] = $data['alias'];
+    $data['alias'] = $alias_helper->getPathAliasWithoutSitePrefix($data);
+
+    /** @var \Drupal\path_alias\Entity\PathAlias $path_entity */
+    $path_entity = PathAlias::load($data['pid']);
+    if ($path_entity) {
+      $node = $alias_helper->getNodeFromPathEntity($path_entity);
+      if ($node) {
+        // Get the Site ID parameter.
+        $request = \Drupal::request();
+        $site_id = $request->get('site');
+        if (!$site_id) {
+          return;
+        }
+
+        // The URL from Tide API is already relative.
+        $data['origin_url'] = $data['url'];
+        // Check if the link belongs to the current site.
+        if ($this->isEntityBelongToSite($node, $site_id)) {
+          $site_url = '';
+        }
+        else {
+          $site_url = $this->getEntityPrimarySiteBaseUrl($node);
+          $data['url'] = $this->getNodeUrlFromPrimarySite($node);
+        }
+        // Remove site prefix from the  URL.
+        $data['url'] = $alias_helper->getPathAliasWithoutSitePrefix(['alias' => $data['url']], $site_url);
+      }
+    }
+  }
+
 }
diff --git a/tide_site.module b/tide_site.module
index eb9d4ed..3dca992 100644
--- a/tide_site.module
+++ b/tide_site.module
@@ -800,3 +800,18 @@ function tide_site_share_link_token_view_alter(array &$build, EntityInterface $t
     }
   }
 }
+
+/**
+ * Implements hook_tide_card_link_enhancer_undo_transform_alter().
+ *
+ * @see Drupal\tide_landing_page\Plugin\jsonapi\FieldEnhancer\CardLinkEnhancer::doUndoTransform()
+ */
+function tide_site_tide_card_link_enhancer_undo_transform_alter(&$data, &$context) {
+  if (empty($data['pid']) || empty($data['url'])) {
+    return;
+  }
+
+  /** @var \Drupal\tide_site\TideSiteHelper $helper */
+  $helper = \Drupal::service('tide_site.helper');
+  $helper->handleApiUrl($data, $context);
+}