diff --git a/module/VuFind/src/VuFind/Theme/Root/Helper/ResultFeed.php b/module/VuFind/src/VuFind/Theme/Root/Helper/ResultFeed.php
index 9a2c1214f5e71d7763bd82f89756c65a4aa6f338..565ec40e2f576c90795d79a39402b4456571fbaf 100644
--- a/module/VuFind/src/VuFind/Theme/Root/Helper/ResultFeed.php
+++ b/module/VuFind/src/VuFind/Theme/Root/Helper/ResultFeed.php
@@ -60,11 +60,11 @@ class VuFind_Theme_Root_Helper_ResultFeed extends Zend_View_Helper_Abstract
             . $results->getDisplayQuery()
         );
         $feed->setLink(
-            $this->view->fullUrl($this->view->url())
+            $this->view->fullUrl($this->view->serverUrl())
             . $results->getUrl()->setViewParam(null, false)
         );
         $feed->setFeedLink(
-            $this->view->fullUrl($this->view->url())
+            $this->view->fullUrl($this->view->serverUrl())
             . $results->getUrl()->getParams(false),
             $results->getView()
         );
diff --git a/themes/vufind/blueprint/templates/Recommend/FavoriteFacets.phtml b/themes/vufind/blueprint/templates/Recommend/FavoriteFacets.phtml
index c14debfbc31c2fb869ee3aa1c154a5eba078936f..9db6852e99f6c0f579a5536d861b48ac3b1acd2e 100644
--- a/themes/vufind/blueprint/templates/Recommend/FavoriteFacets.phtml
+++ b/themes/vufind/blueprint/templates/Recommend/FavoriteFacets.phtml
@@ -29,7 +29,7 @@
         <ul class="filters">
         <? $field = $sideFacetSet['tags']['label'];
            foreach ($tagFilterList as $filter): ?>
-          <? $removeLink = $this->url().$this->results->getUrl()->removeFacet($filter['field'], $filter['value']); ?>
+          <? $removeLink = $this->serverUrl().$this->results->getUrl()->removeFacet($filter['field'], $filter['value']); ?>
           <li>
             <a href="<?=$removeLink?>"><img src="<?=$this->imageLink('silk/delete.png')?>" alt="<?=$this->transEsc('Delete') ?>"/></a>
             <a href="<?=$removeLink?>"><?=$this->transEsc($field)?>: <?=$this->escape($filter['displayText'])?></a>
@@ -43,7 +43,7 @@
           <? if ($thisFacet['isApplied']): ?>
             <?=$this->escape($thisFacet['displayText'])?> <img src="<?=$this->imageLink('silk/tick.png')?>" alt="<?=$this->transEsc('Selected') ?>"/>
           <? else: ?>
-            <a href="<?=$this->url().$this->results->getUrl()->addFacet('tags', $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> (<?=$this->escape($thisFacet['count'])?>)
+            <a href="<?=$this->serverUrl().$this->results->getUrl()->addFacet('tags', $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> (<?=$this->escape($thisFacet['count'])?>)
           <? endif; ?>
           </li>
         <? endforeach; ?>
diff --git a/themes/vufind/blueprint/templates/Recommend/SideFacets.phtml b/themes/vufind/blueprint/templates/Recommend/SideFacets.phtml
index f1db4020ef470bc168602e8ea4b4feeb72af2ffa..b29170a55dc41ec821d38694f294ffe89ee077fd 100644
--- a/themes/vufind/blueprint/templates/Recommend/SideFacets.phtml
+++ b/themes/vufind/blueprint/templates/Recommend/SideFacets.phtml
@@ -16,7 +16,7 @@
     <? foreach ($filterList as $field => $filters): ?>
       <? foreach ($filters as $filter): ?>
         <?
-            $removeLink = $this->url().$this->results->getUrl()->removeFacet($filter['field'], $filter['value']);
+            $removeLink = $this->serverUrl().$this->results->getUrl()->removeFacet($filter['field'], $filter['value']);
             if ($filter['displayText'] == '[* TO *]') $filter['displayText'] = $this->translate('filter_wildcard');
         ?>
         <li>
@@ -57,7 +57,7 @@
             <? if ($thisFacet['isApplied']): ?>
               <dd><?=$this->escape($thisFacet['displayText'])?> <img src="<?=$this->imageLink('silk/tick.png')?>" alt="Selected"/></dd>
             <? else: ?>
-              <dd><a href="<?=$this->url().$this->results->getUrl()->addFacet($title, $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> (<?=$this->escape($thisFacet['count'])?>)</dd>
+              <dd><a href="<?=$this->serverUrl().$this->results->getUrl()->addFacet($title, $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> (<?=$this->escape($thisFacet['count'])?>)</dd>
             <? endif; ?>
           <? endforeach; ?>
           <? if ($i > 5): ?><dd><a href="#" onclick="lessFacets('<?=$this->escape($title)?>'); return false;"><?=$this->transEsc('less')?> ...</a></dd><? endif; ?>
diff --git a/themes/vufind/blueprint/templates/Recommend/TopFacets.phtml b/themes/vufind/blueprint/templates/Recommend/TopFacets.phtml
index 44b195b55ca722f63327d21de5856d851b73d597..9a09b6be0027c1151c27323bd2058bac56ab1eb7 100644
--- a/themes/vufind/blueprint/templates/Recommend/TopFacets.phtml
+++ b/themes/vufind/blueprint/templates/Recommend/TopFacets.phtml
@@ -20,7 +20,7 @@
           <? if ($thisFacet['isApplied']): ?>
             <?=$this->escape($thisFacet['displayText'])?> <img src="<?=$this->imageLink('silk/tick.png')?>" alt="<?=$this->transEsc('Selected') ?>"/>
           <? else: ?>
-            <a href="<?=$this->url().$this->results->getUrl()->addFacet($title, $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> (<?=$thisFacet['count'] ?>)
+            <a href="<?=$this->serverUrl().$this->results->getUrl()->addFacet($title, $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> (<?=$thisFacet['count'] ?>)
           <? endif; ?>
         </span>
         <? if (count($cluster['list']) > $corner && $iter == count($cluster['list'])): ?>
diff --git a/themes/vufind/blueprint/templates/RecordDriver/SolrDefault/tab-holdings.phtml b/themes/vufind/blueprint/templates/RecordDriver/SolrDefault/tab-holdings.phtml
index 020a957ae9b647b33dc7dcbcfdf59414e781f257..f1e2c1796b97cdb8add859da1db9f4971134c7f2 100644
--- a/themes/vufind/blueprint/templates/RecordDriver/SolrDefault/tab-holdings.phtml
+++ b/themes/vufind/blueprint/templates/RecordDriver/SolrDefault/tab-holdings.phtml
@@ -23,11 +23,11 @@
   <? if ($this->account->loginEnabled() && $offlineMode != 'ils-offline'): ?>
     <? if (!$user): ?>
       <div class="info">
-        <a href="<?=$this->url()?>?login=true&catalogLogin=true"><?=$this->transEsc("Login")?></a> <?=$this->transEsc("hold_login")?>
+        <a href="<?=$this->serverUrl()?>?login=true&catalogLogin=true"><?=$this->transEsc("Login")?></a> <?=$this->transEsc("hold_login")?>
       </div>
     <? elseif (!$user->cat_username): ?>
       <div class="info">
-        <?=$this->translate("hold_profile_html", array('%%url%%' => $this->url() . '?catalogLogin=true'))?>
+        <?=$this->translate("hold_profile_html", array('%%url%%' => $this->serverUrl() . '?catalogLogin=true'))?>
       </div>
     <? endif; ?>
   <? endif; ?>
diff --git a/themes/vufind/blueprint/templates/search/controls/limit.phtml b/themes/vufind/blueprint/templates/search/controls/limit.phtml
index ae58a57826134be987f74d285f97aa0adf5af515..f1aa5e862669db0b3cbb8143f0b30f53f60fc0fa 100644
--- a/themes/vufind/blueprint/templates/search/controls/limit.phtml
+++ b/themes/vufind/blueprint/templates/search/controls/limit.phtml
@@ -1,6 +1,6 @@
 <div class="limitSelect">
   <? $limitList = $this->results->getLimitList(); if (count($limitList) > 1): ?>
-    <form action="<?=$this->url() . $this->results->getUrl()->setLimit(null)?>" method="post">
+    <form action="<?=$this->serverUrl() . $this->results->getUrl()->setLimit(null)?>" method="post">
       <label for="limit"><?=$this->transEsc('Results per page')?></label>
       <select id="limit" name="limit" class="jumpMenu">
         <? foreach ($limitList as $limitVal => $limitData): ?>
diff --git a/themes/vufind/blueprint/templates/search/controls/sort.phtml b/themes/vufind/blueprint/templates/search/controls/sort.phtml
index c755112f6da7bf49020073092ae58d5ed11c50b5..4a847e4e31ad2f551cf84a9dc25d4db3029cffa3 100644
--- a/themes/vufind/blueprint/templates/search/controls/sort.phtml
+++ b/themes/vufind/blueprint/templates/search/controls/sort.phtml
@@ -1,5 +1,5 @@
 <? $list = $this->results->getSortList(); if (!empty($list)): ?>
-  <form action="<?=$this->url() . $this->results->getUrl()->setSort(null)?>" method="post">
+  <form action="<?=$this->serverUrl() . $this->results->getUrl()->setSort(null)?>" method="post">
     <label for="sort_options_1"><?=$this->transEsc('Sort')?></label>
     <select id="sort_options_1" name="sort" class="jumpMenu">
       <? foreach ($this->results->getSortList() as $sortType => $sortData): ?>
diff --git a/themes/vufind/blueprint/templates/search/pagination.phtml b/themes/vufind/blueprint/templates/search/pagination.phtml
index fdf19975702e462d35973dab72595afb826acc2a..84a0a0da288313cb36163bb1999e9536cb268a37 100644
--- a/themes/vufind/blueprint/templates/search/pagination.phtml
+++ b/themes/vufind/blueprint/templates/search/pagination.phtml
@@ -1,14 +1,14 @@
 <? if ($this->pageCount): ?>
   <div class="pagination">
   <? if (isset($this->previous)): ?>
-    <a href="<?=$this->url() . $this->results->getUrl()->setPage(1)?>">[1]</a>
-    <a href="<?=$this->url() . $this->results->getUrl()->setPage($this->previous)?>">&laquo; <?=$this->transEsc('Prev')?></a>
+    <a href="<?=$this->serverUrl() . $this->results->getUrl()->setPage(1)?>">[1]</a>
+    <a href="<?=$this->serverUrl() . $this->results->getUrl()->setPage($this->previous)?>">&laquo; <?=$this->transEsc('Prev')?></a>
   <? endif; ?>
 
   <? if (count($this->pagesInRange) > 1): ?>
     <? foreach ($this->pagesInRange as $page): ?>
       <? if ($page != $this->current): ?>
-        <a href="<?=$this->url() . $this->results->getUrl()->setPage($page)?>"><?=$page?></a>
+        <a href="<?=$this->serverUrl() . $this->results->getUrl()->setPage($page)?>"><?=$page?></a>
       <? else: ?>
         <span><?=$page?></span>
       <? endif; ?>
@@ -16,8 +16,8 @@
   <? endif; ?>
 
   <? if (isset($this->next)): ?>
-    <a href="<?=$this->url() . $this->results->getUrl()->setPage($this->next)?>"><?=$this->transEsc('Next');?> &raquo;</a>
-    <a href="<?=$this->url() . $this->results->getUrl()->setPage($this->pageCount)?>">[<?=$this->pageCount?>]</a>
+    <a href="<?=$this->serverUrl() . $this->results->getUrl()->setPage($this->next)?>"><?=$this->transEsc('Next');?> &raquo;</a>
+    <a href="<?=$this->serverUrl() . $this->results->getUrl()->setPage($this->pageCount)?>">[<?=$this->pageCount?>]</a>
   <? endif; ?>
   </div>
 <? endif; ?>
\ No newline at end of file
diff --git a/themes/vufind/blueprint/templates/search/reservessearch.phtml b/themes/vufind/blueprint/templates/search/reservessearch.phtml
index 4c4bbb8e91fb8b6eac9afa1671cee85f06a934aa..fc09247cd5701649ea66c7be3baeb1c5cbe73ba3 100644
--- a/themes/vufind/blueprint/templates/search/reservessearch.phtml
+++ b/themes/vufind/blueprint/templates/search/reservessearch.phtml
@@ -52,7 +52,7 @@
     </tr>
     <? foreach ($this->results->getResults() as $record): ?>
       <?
-          $url = $this->url() . $this->escape(
+          $url = $this->serverUrl() . $this->escape(
               '?inst=' . urlencode($record->getInstructorId())
               . '&course=' . urlencode($record->getCourseId())
               . '&dept=' . urlencode($record->getDepartmentId())
diff --git a/themes/vufind/jquerymobile/templates/Recommend/SideFacets-dialog.phtml b/themes/vufind/jquerymobile/templates/Recommend/SideFacets-dialog.phtml
index 2098395c79bd534e6bd273fa408d8ee26900c5ae..115da9f7b9706af2fa6ed0c7ab49a43203ded076 100644
--- a/themes/vufind/jquerymobile/templates/Recommend/SideFacets-dialog.phtml
+++ b/themes/vufind/jquerymobile/templates/Recommend/SideFacets-dialog.phtml
@@ -15,7 +15,7 @@
                 <? if ($thisFacet['isApplied']): ?>
                   <li data-icon="check" class="checked"><a href="" data-rel="back"><?=$this->escape($thisFacet['displayText'])?></a> <span class="ui-li-count"><?=$this->escape($thisFacet['count'])?></span></li>
                 <? else: ?>
-                  <li><a rel="external" href="<?=$this->url().$this->results->getUrl()->addFacet($title, $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> <span class="ui-li-count"><?=$this->escape($thisFacet['count'])?></span></li>
+                  <li><a rel="external" href="<?=$this->serverUrl().$this->results->getUrl()->addFacet($title, $thisFacet['value'])?>"><?=$this->escape($thisFacet['displayText'])?></a> <span class="ui-li-count"><?=$this->escape($thisFacet['count'])?></span></li>
                 <? endif; ?>
               <? endforeach; ?>
             </ul>
diff --git a/themes/vufind/jquerymobile/templates/Recommend/SideFacets.phtml b/themes/vufind/jquerymobile/templates/Recommend/SideFacets.phtml
index 703a5ab1a5bb67fba534f5723eb8b590949e9983..188067c35a3f4dca74e5a1faba949fd04feab1ef 100644
--- a/themes/vufind/jquerymobile/templates/Recommend/SideFacets.phtml
+++ b/themes/vufind/jquerymobile/templates/Recommend/SideFacets.phtml
@@ -4,7 +4,7 @@
     <? $i = 0; foreach ($filterList as $field => $filters): ?>
       <? foreach ($filters as $filter): ?>
         <?
-            $removeLink = $this->url().$this->results->getUrl()->removeFacet($filter['field'], $filter['value']);
+            $removeLink = $this->serverUrl().$this->results->getUrl()->removeFacet($filter['field'], $filter['value']);
             if ($filter['displayText'] == '[* TO *]') $filter['displayText'] = $this->translate('filter_wildcard');
         ?>
         <li data-icon="minus">
diff --git a/themes/vufind/jquerymobile/templates/RecordDriver/SolrDefault/tab-holdings.phtml b/themes/vufind/jquerymobile/templates/RecordDriver/SolrDefault/tab-holdings.phtml
index 7c38653a124f687c85826f7949d7dc33ed862813..9af7b5eb9994414d0f6392e2cc14e504e35b4ea4 100644
--- a/themes/vufind/jquerymobile/templates/RecordDriver/SolrDefault/tab-holdings.phtml
+++ b/themes/vufind/jquerymobile/templates/RecordDriver/SolrDefault/tab-holdings.phtml
@@ -23,11 +23,11 @@
   <? if ($this->account->loginEnabled() && $offlineMode != 'ils-offline'): ?>
     <? if (!$user): ?>
       <div class="info">
-        <a href="<?=$this->url()?>?login=true&catalogLogin=true"><?=$this->transEsc("Login")?></a> <?=$this->transEsc("hold_login")?>
+        <a href="<?=$this->serverUrl()?>?login=true&catalogLogin=true"><?=$this->transEsc("Login")?></a> <?=$this->transEsc("hold_login")?>
       </div>
     <? elseif (!$user->cat_username): ?>
       <div class="info">
-        <?=$this->translate("hold_profile_html", array('%%url%%' => $this->url() . '?catalogLogin=true'))?>
+        <?=$this->translate("hold_profile_html", array('%%url%%' => $this->serverUrl() . '?catalogLogin=true'))?>
       </div>
     <? endif; ?>
   <? endif; ?>
diff --git a/themes/vufind/jquerymobile/templates/search/pagination.phtml b/themes/vufind/jquerymobile/templates/search/pagination.phtml
index 1244d04d22b54eb78caa02faa54f3095dc8fe4c3..2c4d760f794bf27779e1dddcad43e9920b79e4eb 100644
--- a/themes/vufind/jquerymobile/templates/search/pagination.phtml
+++ b/themes/vufind/jquerymobile/templates/search/pagination.phtml
@@ -1,11 +1,11 @@
 <div data-role="controlgroup" data-type="horizontal" align="center">
   <? if ($this->pageCount): ?>
     <? if (isset($this->previous)): ?>
-      <a rel="external" data-role="button" data-rel="back" href="<?=$this->url() . $this->results->getUrl()->setPage($this->previous)?>">&laquo; <?=$this->transEsc('Prev')?></a>
+      <a rel="external" data-role="button" data-rel="back" href="<?=$this->serverUrl() . $this->results->getUrl()->setPage($this->previous)?>">&laquo; <?=$this->transEsc('Prev')?></a>
     <? endif; ?>
 
     <? if (isset($this->next)): ?>
-      <a rel="external" data-role="button" href="<?=$this->url() . $this->results->getUrl()->setPage($this->next)?>"><?=$this->transEsc('Next');?> &raquo;</a>
+      <a rel="external" data-role="button" href="<?=$this->serverUrl() . $this->results->getUrl()->setPage($this->next)?>"><?=$this->transEsc('Next');?> &raquo;</a>
     <? endif; ?>
   <? endif; ?>
 </div>
\ No newline at end of file
diff --git a/themes/vufind/jquerymobile/templates/search/reservessearch.phtml b/themes/vufind/jquerymobile/templates/search/reservessearch.phtml
index 457e82b74a50986058024365ca6cf4b860e3841d..679b69331ace4cabff1a27a0b7365136ecb7c1d8 100644
--- a/themes/vufind/jquerymobile/templates/search/reservessearch.phtml
+++ b/themes/vufind/jquerymobile/templates/search/reservessearch.phtml
@@ -33,7 +33,7 @@
       <ul class="results" data-role="listview" data-split-icon="plus" data-split-theme="c">
         <? foreach ($this->results->getResults() as $record): ?>
           <?
-              $url = $this->url() . $this->escape(
+              $url = $this->serverUrl() . $this->escape(
                   '?inst=' . urlencode($record->getInstructorId())
                   . '&course=' . urlencode($record->getCourseId())
                   . '&dept=' . urlencode($record->getDepartmentId())