diff --git a/core/modules/views/src/Plugin/views/row/RssFields.php b/core/modules/views/src/Plugin/views/row/RssFields.php
index 1545b7b4e..28fa7cd9c 100644
--- a/core/modules/views/src/Plugin/views/row/RssFields.php
+++ b/core/modules/views/src/Plugin/views/row/RssFields.php
@@ -6,6 +6,7 @@
 use Drupal\Core\Url;
 use Drupal\file\Entity\File;
 use Drupal\file\Plugin\Field\FieldType\FileFieldItemList;
+use Drupal\Component\Utility\UrlHelper;

 /**
  * Renders an RSS item based on fields.
@@ -58,7 +59,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['link_field'] = [
       '#type' => 'select',
       '#title' => $this->t('Link field'),
-      '#description' => $this->t('The field that is going to be used as the RSS item link for each row.'),
+      '#description' => $this->t('The field that is going to be used as the RSS item link for each row. This must be a drupal relative path.'),
       '#options' => $view_fields_labels,
       '#default_value' => $this->options['link_field'],
       '#required' => TRUE,
@@ -149,7 +150,13 @@ public function render($row) {
     // Create the RSS item object.
     $item = new \stdClass();
     $item->title = $this->getField($row_index, $this->options['title_field']);
-    $item->link = Url::fromUri($this->getField($row_index, $this->options['link_field']))->setAbsolute()->toString();
+    // If internal, absolute URL from URI.
+    if (!UrlHelper::isExternal($this->getField($row_index, $this->options['link_field']))) {
+      $item->link = $this->getAbsoluteUrl($this->getField($row_index, $this->options['link_field']));
+    }
+    else {
+      $item->link = Url::fromUri($this->getField($row_index, $this->options['link_field']))->setAbsolute()->toString();
+    }

     $field = $this->getField($row_index, $this->options['description_field']);
     $item->description = is_array($field) ? $field : ['#markup' => $field];
