1

if someone can help me to get a url dynamically in a twig (base.html.twig) but for the alternative version of the current page link for SEO purposes.

The website is using two languages /ar and /fr, when the french version is loaded the website has to show the link of the arabic version as alternative :

loaded page url : https://website.com/fr

hreflang tag : <link rel="alternate" hreflang="ar" href="https://website.com/ar">

I'm not good in coding, for the homepage I've tried this :

 <link rel="alternate" {% if selected_lang == 'fr' %}hreflang="ar"{% else %}hreflang="fr"{% endif %} {% if selected_lang == 'fr' %}href="https://website.com/ar"{% else %}href="https://website.com/fr"{% endif %}>

But I need a solution to get the url for all pages, like adding a variable after /fr/... or /ar/...

is there any way to do it within a html twig?

DarkBee
  • 16,592
  • 6
  • 46
  • 58
Youshad
  • 11
  • 1

1 Answers1

0

You can generate this alternate meta tags this way:

{% set base_url = app.request.getSchemeAndHttpHost ~ app.request.baseUrl %}
{% set canonical_url = app.request.getSchemeAndHttpHost ~ app.request.baseUrl ~ app.request.pathInfo %}
{% set default_locale = 'ar' %}
{% set available_locales = ['ar', 'fr'] %}
{% for site_locale in available_locales %}
    {% if site_locale == default_locale %}
        {% set url_of_page = canonical_url %}
            {% else %}
                {% set url_of_page = canonical_url ~ '/' ~ site_locale %}
    {% endif %}
    <link rel="alternate" hreflang="{{ site_locale }}" href="{{ url_of_page }}" />
{% endfor %}
<link rel="alternate" href="{{ base_url }}" hreflang="x-default" />
Artem Shevtsov
  • 496
  • 5
  • 13