Locator Upgrade - Apache CMS Steps
Table of Contents
Store finder pages on Apache
Search engines and AI assistants often cannot see your store finder. When they visit the page, your stores are not on it yet: they only appear later, on the visitor's screen. So your stores can be missing from search results and from the answers AI assistants give.
After these steps, every store finder page arrives with its stores already on it, with names, addresses and opening hours. Search engines and AI assistants can find each of your stores and show it. Your visitors see the same store finder as before.
It takes four steps.
What you need
Access to your Apache configuration, or someone who has it. A .htaccess file is not enough
Your render token, from Uberall
Your locator key: the data-key of the store finder snippet already on your page
<div id="store-finder-widget" data-key="YOUR_LOCATOR_KEY"></div>
Step 1: Connect your server to Uberall
These Apache modules must be on: include, proxy, proxy_http, ssl and headers. Most servers have them already. If not, your hosting provider can turn them on.
Open your site's configuration, the file with your <VirtualHost>, and paste this inside the <VirtualHost> block. Replace YOUR_RENDER_TOKEN with your token:
SSLProxyEngine on
SSLProxyVerify require
SSLProxyVerifyDepth 10
SSLProxyCACertificateFile /etc/ssl/certs/ca-certificates.crt
<Location "/api/locator-fragments/">
Require expr %{IS_SUBREQ} == 'true'
RequestHeader set x-uberall-render-token "YOUR_RENDER_TOKEN"
RequestHeader unset Accept-Encoding
RequestHeader unset Cookie
RequestHeader unset Authorization
RequestHeader unset Proxy-Authorization
RequestHeader unset Via
ProxyAddHeaders Off
ProxyPass "https://uberall.com/api/locator-fragments/" connectiontimeout=2 timeout=6
ProxyErrorOverride On
</Location>
The token stays on your server. Visitors never see it.
The certificate file lists the authorities your system trusts, and where it is depends on the system:
| System | File |
| Debian, Ubuntu, Alpine | /etc/ssl/certs/ca-certificates.crt |
| Red Hat, CentOS, AlmaLinux, Rocky, Amazon Linux | /etc/pki/tls/certs/ca-bundle.crt |
| openSUSE | /etc/ssl/ca-bundle.pem |
If yours is not there, openssl version -d shows the folder where OpenSSL keeps it.
Step 2: Turn on includes for the store finder
In the same <VirtualHost>, paste this. Replace /var/www/site/store-locator with the folder that holds your store finder page:
<Directory /var/www/site/store-locator>
Options +Includes
AddOutputFilter INCLUDES .html
SSIErrorMsg "<!-- -->"
</Directory>
Step 3: Add two lines to the store finder page
Open the HTML of your store finder page and add the two include lines shown below. Replace YOUR_LOCATOR_KEY with your locator key.
<head>
<!-- ... your head stays as it is ... -->
<!--#include virtual="/api/locator-fragments/head?key=YOUR_LOCATOR_KEY&path=${REQUEST_URI}" -->
</head>
<body>
<!-- ... -->
<div id="store-finder-widget" data-key="YOUR_LOCATOR_KEY">
<!--#include virtual="/api/locator-fragments/body?key=YOUR_LOCATOR_KEY&path=${REQUEST_URI}" -->
</div>
<script src="https://locator.uberall.com/locator-assets/storeFinderWidget-v2.js"></script>
</body>
The first line goes just before </head>. The second goes inside the store finder's div. Keep path=${REQUEST_URI} at the end of each line.
If your snippet has data-language or data-widgetoriginurl
Add the same values to both include lines, before &path=:
| Your snippet has | Add to both lines |
data-language="en" |
&lang=en |
data-widgetoriginurl="https://www.example.com/store-locator" |
&widgetOriginUrl=https://www.example.com/store-locator |
With both, the first line reads:
<!--#include virtual="/api/locator-fragments/head?key=YOUR_LOCATOR_KEY&lang=en&widgetOriginUrl=https://www.example.com/store-locator&path=${REQUEST_URI}" -->
Without them, the store finder uses the language and address set up for it at Uberall.
Step 4: Restart and check
Restart Apache:
sudo apachectl configtest && sudo apachectl graceful
Open your store finder in the browser, right click, and choose View page source. Search the source for __ubSfSsr. If you find it, it works.
If it does not work
| What you see | What to do |
configtest reports an error |
A module from step 1 is off, or the certificate file does not exist. Ask your hosting provider |
The source still shows the <!--#include ... --> lines |
The folder in step 2 is not the one that holds the page, or the page does not end in .html
|
A store's page, such as /store-locator/l/berlin/..., says "Not Found" |
Your server does not send the store finder page for every address under it. Add the lines below |
__ubSfSsr is not in the source |
Check the token and the key, and step 3 if your snippet has a language or an address. Then contact Uberall |
To send the store finder page for every address under it, paste this in the <VirtualHost>, with your own folder and page:
RewriteEngine on
RewriteRule ^/store-locator/. /store-locator/index.html [PT,L]
The store finder keeps working in every case. If Uberall cannot send the content, because it cannot be reached, does not answer in time or answers with an error, the page loads as it did before.