Boker le template gratuit de Globbersthemes

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Boker le template gratuit de Globbersthemes

    Je viens de tester Boker de Globbersthemes.

    Télécharger le template : http://www.globbersthemes.com/Downlo...-template.html

    Une fois téléchargé, j'utilise le fichier Quick ... qui me permet l'installation immédiate de l'archive Akeeba pour avoir la version en Demo complète du site.

    Dans l'ensemble, ça se passe bien, le site est visuellement correct sur Firefox, je note un léger bogue d'affichage depuis Brave Browser pour le module image en bas de page, mais, ça pourrait être amélioré.


    Par contre, si je passe le site en Hors-Ligne, quand je me connecte en front-end, je n'ai accès que à la première page du site, la navigation semble impossible, je suis à chaque fois redirigé vers le formulaire Hors-Ligne, quand je tente de naviguer.

    Une idée pour tenter de remédier à ça ?
    Pour le moment je part du principe que c'est un bogue du template, donc, je n'ai pas cherché plus loin, et, j'ai modifié le .htaccess pour n'autoriser que mon IP à naviguer.

  • #2
    Bizarre ! Je viens de faire le même test en local sous Firefox et je n'ai eu aucun problème de navigation après identification sur le site hors-ligne (j'ai juste installé le quickstart, mis le site hors-ligne et ouvert le site pour m'identifier). Je ne vois pas ce qui peut être en cause pour toi.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Ha flute, merci de ta réponse et du test. J'ai fais la mise à jour de Joomla sur l'ensemble quickstart et je suis en PHP 7.2

      Je peux te partager mon Vhost, peut être que j'ai une condition trop restrictive.

      J'ai testé mon site principale et je n'ai pas de soucis, avec un Vhost similaire, et, un autre template.

      C'est plutôt une bonne chose que cela fonctionne chez toi, mais, aucune idée pourquoi dans mon cas ça ne fonctionne pas.


      Code:
      # VirtualHost du domaine green-nrj.com
      ## ## ## Port 80 ## ## ##
      <VirtualHost green-nrj.com:80>
      ServerName green-nrj.com
      ServerAlias www.green-nrj.com
      
      # Ce vhost redirige de http vers https. 100% du trafic doit passer par https.
      # Les informations complémentaires sont inutiles. Pas de documentRoot, pas de logs.
      
      # La ligne suivante peut-être conservée dans le cas suivant :
      # Forcer le renouvellement ou recréer le certificat Let's Encrypt.
      # Renouveler avec : sudo certbot --force-renewal renew
      DocumentRoot /var/www/html/
      
      <IfModule mod_rewrite.c>
      RewriteEngine on
      # Redirection de http vers https.
      RewriteCond %{HTTPS} off
      # Le dossier .well-know de certbot doit être exclu de la réécriture d'URL.
      RewriteRule (^|/)\.(?!well-known) - [F]
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
      </IfModule>
      </VirtualHost>
      
      ## ## ## Port 443 ## ## ##
      <VirtualHost green-nrj.com:443>
      ServerName green-nrj.com
      ServerAlias www.green-nrj.com
      ServerAdmin mail@***********.com
      DocumentRoot /var/www/html
      
      # Comportement par défaut du niveau d'alerte retourné.
      # LogLevel warn
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
      
      # CSP - Politique de sécurité du contenu.
      <IfModule mod_headers.c>
      # Charger l'entête HSTS.
      Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
      
      # Sécuriser les Cookies.
      # Interdire l’utilisation du cookie côté client avec l’instruction HttpOnly.
      # Interdire l’utilisation du cookie sans HTTPs avec le flag Secure.
      Header always edit Set-Cookie (.*) "$1;HttpOnly;Secure"
      
      # Protéger des failles X-XSS X-Frame X-Content.
      Header set X-XSS-Protection "1; mode=block"
      Header always set X-Frame-Options "SAMEORIGIN"
      Header set X-Content-Type-Options nosniff
      
      Header set Access-Control-Allow-Origin: "default-src 'self' https://www.green-nrj.com"
      # La directive frame-ancestror permet de créer une exception pour le domaine gratuit du FTP et d'ignorer la commande Header always set X-Frame-Options "SAMEORIGIN".
      # Le mieux sera de gérer directement un sous domaine pour gérer son adresse FTP.
      Header set Content-Security-Policy: "frame-ancestors 'self' http://***********.user.fr"
      # Header set Content-Security-Policy: "default-src 'self' https://www.green-nrj.com; script-src 'self' 'unsafe-inline' https://www.green-nrj.com; object-src 'self' https://www.green-nrj.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://www.green-nrj.com; media-src 'self' https://www.green-nrj.com; frame-src 'self' https://www.green-nrj.com; font-src 'self' 'unsafe-inline' https://www.green-nrj.com; connect-src 'self' https://www.green-nrj.com; frame-ancestors 'self' http://***********.user.fr"
      
      # Le navigateur n'enverra pas l'en-tête du référent lors de la navigation de HTTPS vers HTTP.
      Header always set Referrer-Policy 'no-referrer-when-downgrade'
      
      # Identique à CSP mais au lieu de contrôler la sécurité c'est un contrôle des fonctionnalités.
      Header always set Feature-Policy "geolocation none;midi none;notifications none;push none;sync-xhr self;microphone none;camera none;magnetometer none;gyroscope none;speaker self;vibrate none;fullscreen self;payment none;"
      
      # Contrôle du cache navigateur.
      # Ne pas mettre en cache si ces fichiers le sont déjà.
      SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
      # Désactiver le cache pour les scripts et fichiers dynamiques.
      <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
      Header unset Cache-Control
      </FilesMatch>
      # Mettre en cache les éléments suivants.
      <filesmatch "\.(gif|ico|jpe?g|png)$">
      # Mise en cache de une année.
      Header set Cache-Control "max-age=33566400, public"
      # Économiser des requêtes de cookie sur les images.
      RequestHeader unset Cookie
      Header unset Cookie
      Header unset Set-Cookie
      </filesmatch>
      <filesmatch "\.(html|htm|css)$">
      # Mise en cache de une semaine.
      Header set Cache-Control "max-age=604800, public"
      </filesmatch>
      <filesmatch "\.(js)$">
      # Mise en cache de une semaine.
      Header set Cache-Control "max-age=604800, private"
      </filesmatch>
      <filesmatch "\.(gz|pdf|ttf)$">
      # Mise en cache de une année. (Je n'ai pas le type gz présent dans les entêtes Expires.)
      Header set Cache-Control "max-age=33566400, public"
      </filesmatch>
      <filesmatch "\.(flv|swf)$">
      # Mise en cache de une semaine.
      Header set Cache-Control "max-age=33566400, public"
      </filesmatch>
      </IfModule>
      
      # Charger le certificat Let's Encrypt.
      <IfModule mod_ssl.c>
      SSLEngine on
      SSLCertificateFile /etc/letsencrypt/live/unis-pour-la-planete.com/cert.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/unis-pour-la-planete.com/privkey.pem
      SSLCertificateChainFile /etc/letsencrypt/live/unis-pour-la-planete.com/chain.pem
      
      SSLProtocol all -SSLv2 -SSLv3
      SSLHonorCipherOrder on
      SSLCompression off
      SSLOptions +StrictRequire
      SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
      </IfModule>
      
      # La première règle évaluée par Apache2 consiste à limiter l'accès à toute l'arborescence du système Linux (/).
      <Directory />
      Require all denied
      </Directory>
      
      <Directory /var/www/html>
      # Empêcher le suivi des liens symboliques.
      Options -FollowSymLinks
      # Protéger l'accès aux répertoires.
      Options -Indexes
      # Désactiver Inclusions Côté Serveur - Server Side Includes - SSI.
      Options -Includes
      # Permet la prise en compte du fichier .htaccess.
      AllowOverride All
      # Définir le fichier à appeler par défaut.
      DirectoryIndex index.php index.html
      
      ## Contrôle d'accès Apache 2.2 :
      # Toutes les requêtes sont autorisées.
      # Fonctionne aussi sur Apache 2.4.
      # Order allow,deny
      # allow from all
      #### Require forward-dns (Retour de la commande host hostname)
      ## Contrôle d'accès Apache 2.4 :
      # Toutes les requêtes sont autorisées.
      # Fonctionne depuis que j'ai renseigné DirectoryIndex.
      Require all granted
      # Contrôle d'accès Apache 2.4 :
      # Require par IP permet uniquement l'accès au site depuis l'adresse IP fournie.
      # Require ip xx.xx.xx.xx
      </Directory>
      
      # Protéger le fichier .htaccess :
      <files .htaccess>
      # Apache version 2.4 :
      Require all denied
      </files>
      
      <IfModule mod_rewrite.c>
      RewriteEngine on
      # Redirection de https non-www vers https www
      RewriteCond %{SERVER_NAME} !^www\.(.*)$ [NC]
      RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
      # Interdire l'affichage des types de fichiers suivants sur les sites non autorisés.
      # *********** fr est autorisé.
      # RewriteCond %{HTTP_REFERER} !^https://(.+.)?green-nrj.com/ [NC]
      # Dans le cas d'un entête réécrit, une URL de provenance vide sera autorisée.
      # RewriteCond %{HTTP_REFERER} !^$
      # Rediriger les fichiers vers une image de hotlinking.
      # RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/structure/no-hotlinking.png [L]
      </IfModule>
      
      # Désactiver Etag.
      FileETag none
      
      # Activer la compression.
      <IfModule mod_deflate.c>
      SetOutputFilter DEFLATE
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
      AddOutputFilterByType DEFLATE application/x-font
      AddOutputFilterByType DEFLATE application/x-font-opentype
      AddOutputFilterByType DEFLATE application/x-font-otf
      AddOutputFilterByType DEFLATE application/x-font-truetype
      AddOutputFilterByType DEFLATE application/x-font-ttf
      AddOutputFilterByType DEFLATE application/x-javascript
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE font/opentype
      AddOutputFilterByType DEFLATE font/otf
      AddOutputFilterByType DEFLATE font/ttf
      AddOutputFilterByType DEFLATE image/svg+xml
      AddOutputFilterByType DEFLATE image/x-icon
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/plain
      </IfModule>
      
      # DEFLATE pour les navigateurs non compatibles.
      BrowserMatch ^Mozilla/4 gzip-only-text/html
      BrowserMatch ^Mozilla/4\.0[678] no-gzip
      BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
      BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
      
      # Mise en cache du navigateur.
      <IfModule mod_expires.c>
      ExpiresActive On
      # Mise en cache par défaut du navigateur.
      ExpiresDefault "access plus 1 month"
      # Images.
      ExpiresByType image/gif "access plus 1 year"
      ExpiresByType image/jpg "access plus 1 year"
      ExpiresByType image/jpeg "access plus 1 year"
      ExpiresByType image/png "access plus 1 year"
      AddType image/svg+xml .svg
      ExpiresByType image/svg+xml "access plus 1 year"
      AddType image/x-icon .ico
      ExpiresByType image/ico "access plus 1 year"
      ExpiresByType image/icon "access plus 1 year"
      ExpiresByType image/x-icon "access plus 1 year"
      # Structure du site.
      ExpiresByType application/xhtml+xml "access plus 1 week"
      ExpiresByType text/html "access plus 1 week"
      ExpiresByType text/css "access plus 1 week"
      ExpiresByType application/javascript "access plus 1 week"
      ExpiresByType text/x-javascript "access plus 1 week"
      ExpiresByType application/javascript "access plus 1 week"
      ExpiresByType application/x-javascript "access plus 1 week"
      ExpiresByType application/x-shockwave-flash "access plus 30 days"
      # Documents.
      ExpiresByType application/pdf "access plus 1 year"
      # Polices.
      AddType application/vnd.ms-fontobject .eot
      AddType application/x-font-ttf .ttf
      AddType application/x-font-opentype .otf
      AddType application/x-font-woff .woff
      ExpiresByType application/vnd.ms-fontobject "access 1 year"
      ExpiresByType application/x-font-ttf "access 1 year"
      ExpiresByType application/x-font-opentype "access 1 year"
      ExpiresByType application/x-font-woff "access 1 year"
      </IfModule>
      
      # Limitations contre les DoS.
      KeepAlive On
      MaxKeepAliveRequests 100
      KeepAliveTimeout 5
      
      # Erreur 403 - Forbidden.
      ErrorDocument 403 https://www.***********.fr/403-forbidden.php
      </Location>
      
      </VirtualHost>

      Commentaire


      • #4
        Je note que les liens sont bien écrits dans la barre d'adresse des URL, sauf que est affiché la page de formulaire du site hors ligne, pour me connecter, à chaque tentative.


        Je perd donc l'accès, dès que je tente de changer de page.


        C'est cette portion du code qui me crée ce problème de navigation hors ligne, quand je le retire, je peux naviguer sur le site hors ligne.
        Reste à comprendre pourquoi, car, mon site principale a le même et je n'ai pas de soucis de navigation.

        Code:
        # Contrôle du cache navigateur.
        # Ne pas mettre en cache si ces fichiers le sont déjà.
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
        # Désactiver le cache pour les scripts et fichiers dynamiques.
        <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
        Header unset Cache-Control
        </FilesMatch>
        # Mettre en cache les éléments suivants.
        <filesmatch "\.(gif|ico|jpe?g|png)$">
        # Mise en cache de une année.
        Header set Cache-Control "max-age=33566400, public"
        # Économiser des requêtes de cookie sur les images.
        RequestHeader unset Cookie
        Header unset Cookie
        Header unset Set-Cookie
        </filesmatch>
        <filesmatch "\.(html|htm|css)$">
        # Mise en cache de une semaine.
        Header set Cache-Control "max-age=604800, public"
        </filesmatch>
        <filesmatch "\.(js)$">
        # Mise en cache de une semaine.
        Header set Cache-Control "max-age=604800, private"
        </filesmatch>
        <filesmatch "\.(gz|pdf|ttf)$">
        # Mise en cache de une année. (Je n'ai pas le type gz présent dans les entêtes Expires.)
        Header set Cache-Control "max-age=33566400, public"
        </filesmatch>
        <filesmatch "\.(flv|swf)$">
        # Mise en cache de une semaine.
        Header set Cache-Control "max-age=33566400, public"
        </filesmatch>
        </IfModule>
        
        # Ne pas mettre en cache si ces fichiers le sont déjà.
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
        Dernière édition par ZerooCool à 22/06/2019, 22h53

        Commentaire


        • #5
          Finalement, si je commente les trois dernières lignes de ce code depuis le VirtualHost, je peux naviguer en étant hors ligne.
          Ça doit pouvoir être optimisé ... Comment ... Pourquoi ...

          Le public pourrait poser problème du fait que le site soit hors ligne, nous sommes en navigation privée ?
          Pourtant j'ai aussi cette option public sur mon site principale et lui me permet bien la navigation.

          Code:
          <filesmatch "\.(gif|ico|jpe?g|png)$">
          # Mise en cache de une année.
          Header set Cache-Control "max-age=33566400, public"
          
          # >> ICI <<
          # Économiser des requêtes de cookie sur les images.
          # RequestHeader unset Cookie
          Header unset Cookie
          Header unset Set-Cookie
          </filesmatch>
          Si je commente uniquement la ligne RequestHeader unset Cookie j'arrive maintenant à naviguer.
          Je ne comprend pas pourquoi la configuration fonctionnerait sur mon site principale et pas pour ce nouveau template.
          Une idée ?
          Dernière édition par ZerooCool à 23/06/2019, 00h48

          Commentaire


          • #6
            Au final, j'ai deux paramétrages possibles, pour des problématiques différentes mais très proches, mais dans les deux cas, je dois commenter la ligne identifiée précédemment pour que le script puisse fonctionner :

            Code:
            # Ici le code concerné ce trouve dans la partie " Economier les requêtes cookies ".
            
            # Contrôle du cache navigateur.
            # Ne pas mettre en cache si ces fichiers le sont déjà.
            SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
            # Désactiver le cache pour les scripts et fichiers dynamiques.
            <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
            Header unset Cache-Control
            </FilesMatch>
            # Mettre en cache les éléments suivants.
            <filesmatch "\.(gif|ico|jpe?g|png)$">
            # Mise en cache de une année.
            Header set Cache-Control "max-age=33566400, public"
            </filesmatch>
            <filesmatch "\.(html|htm|css)$">
            # Mise en cache de une semaine.
            Header set Cache-Control "max-age=604800, public"
            </filesmatch>
            <filesmatch "\.(js)$">
            # Mise en cache de une semaine.
            Header set Cache-Control "max-age=604800, private"
            </filesmatch>
            <filesmatch "\.(gz|pdf|ttf)$">
            # Mise en cache de une année. (Je n'ai pas le type gz présent dans les entêtes Expires.)
            Header set Cache-Control "max-age=33566400, public"
            </filesmatch>
            <filesmatch "\.(flv|swf)$">
            # Mise en cache de une semaine.
            Header set Cache-Control "max-age=33566400, public"
            </filesmatch>
            
            # Économiser les requêtes de cookies.
            # L'extension php n'est pas ajoutée, sinon, impossible de se connecter au site.
            <filesMatch "\.(ico|jpe?g|png|gif|svg|swf|gz|ttf|eot|woff|html|htm|css|pl|cgi|spl|scgi|fcgi)$">
            # L'identifiant de sécurité ne correspondait pas.
            # La demande a été interrompue pour empêcher toute violation de la sécurité.
            # RequestHeader unset Cookie
            Header unset Cookie
            Header unset Set-Cookie
            </filesmatch>
            </IfModule>

            Seconde possibilité

            Code:
            # Ici le code concerné ce trouve après la ligne qui concerne les images.
            
            # Contrôle du cache navigateur.
            # Ne pas mettre en cache si ces fichiers le sont déjà.
            SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
            # Désactiver le cache pour les scripts et fichiers dynamiques.
            <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
            Header unset Cache-Control
            </FilesMatch>
            # Mettre en cache les éléments suivants.
            <filesmatch "\.(gif|ico|jpe?g|png)$">
            # Mise en cache de une année.
            Header set Cache-Control "max-age=33566400, public"
            # Économiser des requêtes de cookie sur les images.
            # Si je décommente, je peux me connecter mais pas naviguer.
            ## RequestHeader unset Cookie
            Header unset Cookie
            Header unset Set-Cookie
            </filesmatch>
            <filesmatch "\.(html|htm|css)$">
            # Mise en cache de une semaine.
            Header set Cache-Control "max-age=604800, public"
            </filesmatch>
            <filesmatch "\.(js)$">
            # Mise en cache de une semaine.
            Header set Cache-Control "max-age=604800, private"
            </filesmatch>
            <filesmatch "\.(gz|pdf|ttf)$">
            # Mise en cache de une année. (Je n'ai pas le type gz présent dans les entêtes Expires.)
            Header set Cache-Control "max-age=33566400, public"
            </filesmatch>
            <filesmatch "\.(flv|swf)$">
            # Mise en cache de une semaine.
            Header set Cache-Control "max-age=33566400, public"
            </filesmatch>
            
            # Ne pas mettre en cache si ces fichiers le sont déjà.
            SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
            </IfModule>
            Dernière édition par ZerooCool à 23/06/2019, 00h56

            Commentaire


            • #7
              En conclusion, pour le site en question.

              # Si j'utilise le premier script précédent :
              # Si je décommente : L'identifiant de sécurité ne correspondait pas.
              # La demande a été interrompue pour empêcher toute violation de la sécurité.
              ## RequestHeader unset Cookie


              # Si j'utilise le deuxième script précédent :
              # Si je décommente, je peux me connecter mais pas naviguer.
              ## RequestHeader unset Cookie


              Pourtant, sur le même serveur, mon site principale fonctionne correctement avec les 3 commandes :
              RequestHeader unset Cookie
              Header unset Cookie
              Header unset Set-Cookie


              Le fonctionnement de RequestHeader unset Cookie pourrait être différent en fonction du template utilisé ?

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X