redirection 301 d'une url avec htaccess

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

  • [RÉGLÉ] redirection 301 d'une url avec htaccess

    Bonjour,

    Avant de migrer mon ancien site vers un nouveau fait avec Joomla je suis en train de tester les redirections en ligne au niveau du répertoire où j'ai installer Joomla.
    Je le fais avec des pages test que j'ai ajouté au même niveau que le index.php de Joomla (page1.php et page2.htlm). Voir ci-dessous le code du htaccess.

    Je souhaite que cela soit fait avec le htaccess car cela me semble plus simple plutôt que de passer par le serveur (OVH) ou le composant natif de joomla, à cause du nombre d'url.

    Cela ne fonctionne pas même quand je purge le cache navigateur.

    Je précise que j'ai fait le test dans un répertoire parent (un niveau hiérarchique de répertoire au dessus de celui de Joomla) et que cela fonctionne très bien (avec quand même un htaccess différent de celui de Joomla).

    Quelqu'un a une idée de ce qui bloque?

    Merci


    Code:
    ##
    # @package Joomla
    # [USER="64686"]Copyright[/USER] Copyright (C) 2005 - 2017 Open Source Matters. All rights reserved.
    # @license GNU General Public License version 2 or later; see LICENSE.txt
    ##
    
    
    ##
    # Test Redirections
    #
    ##
    
    Redirect permanent /page1.php [URL]http://monsite.com/joom/page2.html[/URL]
    
    ##
    # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
    #
    # The line 'Options +FollowSymLinks' may cause problems with some server configurations.
    # It is required for the use of mod_rewrite, but it may have already been set by your
    # server administrator in a way that disallows changing it in this .htaccess file.
    # If using it causes your site to produce an error, comment it out (add # to the
    # beginning of the line), reload your site in your browser and test your sef urls. If
    # they work, then it has been set by your server administrator and you do not need to
    # set it here.
    ##
    
    ## No directory listings
    <IfModule autoindex>
    IndexIgnore *
    </IfModule>
    
    ## Can be commented out if causes errors, see notes above.
    Options +FollowSymlinks
    Options -Indexes
    
    ## Mod_rewrite in use.
    
    RewriteEngine On
    
    ## Begin - Rewrite rules to block out some common exploits.
    # If you experience problems on your site then comment out the operations listed
    # below by adding a # to the beginning of the line.
    # This attempts to block the most common type of exploit `attempts` on Joomla!
    #
    # Block any script trying to base64_encode data within the URL.
    RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
    # Block any script that includes a <script> tag in URL.
    RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
    # Block any script trying to set a PHP GLOBALS variable via URL.
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    # Block any script trying to modify a _REQUEST variable via URL.
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    # Return 403 Forbidden header and show the content of the root home page
    RewriteRule .* index.php [F]
    #
    ## End - Rewrite rules to block out some common exploits.
    
    ## Begin - Custom redirects
    #
    # If you need to redirect some pages, or set a canonical non-www to
    # www redirect (or vice versa), place that code here. Ensure those
    # redirects use the correct RewriteRule syntax and the [R=301,L] flags.
    #
    ## End - Custom redirects
    
    ##
    # Uncomment the following line if your webserver's URL
    # is not directly related to physical file paths.
    # Update Your Joomla! Directory (just / for root).
    ##
    
    # RewriteBase /
    
    ## Begin - Joomla! core SEF Section.
    #
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    #
    # If the requested path and file is not /index.php and the request
    # has not already been internally rewritten to the index.php script
    RewriteCond %{REQUEST_URI} !^/index\.php
    # and the requested path and file doesn't directly match a physical file
    RewriteCond %{REQUEST_FILENAME} !-f
    # and the requested path and file doesn't directly match a physical folder
    RewriteCond %{REQUEST_FILENAME} !-d
    # internally rewrite the request to the index.php script
    RewriteRule .* index.php [L]
    #
    ## End - Joomla! core SEF Section.
    
    
    # gestion cache navigateur (DG)
    # Enable expiration control
    ExpiresActive On
    # Default expiration: 1 hour after request
    ExpiresDefault "now plus 1 hour"
    # CSS and JS expiration: 1 week after request
    ExpiresByType text/css "now plus 1 week"
    ExpiresByType application/javascript "now plus 1 week"
    ExpiresByType application/x-javascript "now plus 1 week"
    
    # Image files expiration: 1 month after request
    ExpiresByType image/bmp "now plus 1 month"
    ExpiresByType image/gif "now plus 1 month"
    ExpiresByType image/jpeg "now plus 1 month"
    ExpiresByType image/jp2 "now plus 1 month"
    ExpiresByType image/pipeg "now plus 1 month"
    ExpiresByType image/png "now plus 1 month"
    ExpiresByType image/svg+xml "now plus 1 month"
    ExpiresByType image/tiff "now plus 1 month"
    ExpiresByType image/vnd.microsoft.icon "now plus 1 month"
    ExpiresByType image/x-icon "now plus 1 month"
    ExpiresByType image/ico "now plus 1 month"
    ExpiresByType image/icon "now plus 1 month"
    ExpiresByType text/ico "now plus 1 month"
    ExpiresByType application/ico "now plus 1 month"
    ExpiresByType image/vnd.wap.wbmp "now plus 1 month"
    ExpiresByType application/vnd.wap.wbxml "now plus 1 month"
    ExpiresByType application/smil "now plus 1 month"
    
    # Audio files expiration: 1 month after request
    ExpiresByType audio/basic "now plus 1 month"
    ExpiresByType audio/mid "now plus 1 month"
    ExpiresByType audio/midi "now plus 1 month"
    ExpiresByType audio/mpeg "now plus 1 month"
    ExpiresByType audio/x-aiff "now plus 1 month"
    ExpiresByType audio/x-mpegurl "now plus 1 month"
    ExpiresByType audio/x-pn-realaudio "now plus 1 month"
    ExpiresByType audio/x-wav "now plus 1 month"
    
    # Movie files expiration: 1 month after request
    ExpiresByType application/x-shockwave-flash "now plus 1 month"
    ExpiresByType x-world/x-vrml "now plus 1 month"
    ExpiresByType video/x-msvideo "now plus 1 month"
    ExpiresByType video/mpeg "now plus 1 month"
    ExpiresByType video/mp4 "now plus 1 month"
    ExpiresByType video/quicktime "now plus 1 month"
    ExpiresByType video/x-la-asf "now plus 1 month"
    ExpiresByType video/x-ms-asf "now plus 1 month"
    
    ##fonts
    
    # Add correct content-type for fonts
    AddType application/vnd.ms-fontobject .eot
    AddType application/x-font-ttf .ttf
    AddType application/x-font-opentype .otf
    AddType application/x-font-woff .woff
    AddType application/x-font-woff .woff2
    AddType image/svg+xml .svg
    
    # Font files expiration: 1 month after request
    ExpiresByType application/vnd.ms-fontobject "now plus 1 month"
    ExpiresByType application/x-font-ttf "now plus 1 month"
    ExpiresByType application/x-font-opentype "now plus 1 month"
    ExpiresByType application/x-font-woff "now plus 1 month"
    ExpiresByType application/font-woff2 "now plus 1 month"
    ExpiresByType image/svg+xml "now plus 1 month"
    # Fin gestion cache navigateur (DG)




    Dernière édition par dustbin34 à 08/12/2018, 22h31

  • #2
    Bonjour,

    et bien finalement je me réponds (partiellement) à moi-même...

    Pour ceux que ça intéressent :

    Mon nom de domaine pointe actuellement vers le dossier www de mon hébergeur OVH. Mon site actuellement en production est dans ce www.

    J'ai fait une nouvelle version du site avec joomla dans le dossier www/joom , pour la migration je compte faire pointer mon nom de domaine vers ce nouveau répertoire.
    Avant je souhaite tester les redirections.

    J'ai un htaccess dans le dossier www
    et un autre dans le dossier www/joom (c'est le htaccess dont le code est présenté dans mon premier message, celui fourni par joomla et modifié selon mes besoins)

    Au début je pensais faire la redirection au niveau du htaccess du dossier www/joom mais après divers essai ma redirection
    Redirect permanent /page1.php http://monsite.com/joom/page2.html
    ne fonctionne pas quand je tape l'url http://monsite.com/joom/page1.php
    page1.php et page2.html sont dans le répertoires www/joom.

    La seule méthode qui marche pour moi c'est de faire la redirection au niveau du htaccess du répertoire www, en écrivant
    Redirect permanent /joom/page1.php http://monsite.com/joom/page2.html

    Bon très bien j'ai trouvé mais je ne comprends pas bien le principe du htaccess, car je pensais que la redirection pouvait être faite au niveau des sous-répertoires, c'est à dire là ou pointe l'url que l'on tape dans le navigateur...
    Est-ce que les redirections doivent toujours se faire dans le htaccess du répertoire racine?

    Est ce que cela marchera quand je ferai la redirection au niveau du htaccess du répertoire www/joom et qu'au niveau d'OVH je ferai pointer l'url http://monsite.com vers le dossier www/joom ???

    Ou alors, est ce qu'il y a une erreur de code ou incompatibilité dans mon htaccess joomla?

    Quelqu'un pour me le dire?

    Merci d'avance!



    Commentaire


    • #3
      Je me suis arrêter de lire "je teste mes redirections en créant blabla" au 1er post, très mauvaise idée à mon sens car ces pages créées devront être supprimées à leurs tours à un moment...
      voici un lien pour faire des tests de redirection. Tu pourra lire plus loin sur ce site pleins d'informations pertinentes a ce sujet.

      Pour finir, je dirais, à mon avis, dans ton cas, que le mieux et de faire tes modifications puis ensuite de faire tes redirections une fois pour toute, sans faire tous se melimelo de pages de tests.
      Tester une redirection est devenu un jeu d'enfant: identifiez une redirection 301, 302 ou HTML (meta refresh) ou des frames en quelques secondes !

      Commentaire


      • #4
        Bonjour Five_Phil,

        Je te remercie d'avoir pris la peine de me répondre.
        Par contre cela ne répond pas vraiment à mes questions.

        J'ai volontairement pris le temps d'expliquer le contexte et de poser des questions précises qui sont :
        1 -Est-ce que les redirections doivent toujours se faire dans le htaccess du répertoire racine?
        Si non quel serait l'exemple de code dans le cas de mon htaccess situé dans le sous répertoire www/joom qui doit rediriger la page page1.php vers la page page2.html qui sont toutes les deux dans le répertoire joom?

        2 - Est ce que cela marchera quand je ferai la redirection au niveau du htaccess du répertoire www/joom et qu'au niveau d'OVH je ferai pointer l'url http://monsite.com vers le dossier www/joom ???
        Ou alors, est ce qu'il y a une erreur de code ou incompatibilité dans mon htaccess joomla?


        Je n'ai pas fait un méli-mélo de test, juste tester la redirection sur deux pages comme çà, pas très compliqué et cela me permet de comprendre un peu ces manipulations. Bien sûr ces pages seront supprimées par la suite... je les ai créées pour ça.

        Le référencement me semble suffisamment important pour que j'anticipe les problèmes de redirection avant la migration.

        En parcourant ton site je n'ai pas trouvé d'information répondant à mes questions.

        Je te remercie d'avance si tu as les réponses sinon quelqu'un aurait l'info?


        Merci

        Commentaire


        • #5
          Sujet réglé.
          Lors de ma migration le code de redirection a correctement fonctionné.
          Pour info je n'ai pas trouvé la réponse à ma question concernant le code du HTaccess pour les redirections lorsque le HTaccess n'est pas dans le répertoire racine....

          Commentaire


          • #6
            Bonjour.

            Tu te mets dès le départ un peu dans la difficulté.
            Pour quoi mettre ton nouveau site dans le répertoire de l'ancien ?
            Un site peut (et doit selon moi) être à la racine, aux côtés du premier, second, troisième, etc.
            Ça permet de moin s'emmêler, c'est bien plus clair et ne provoque pas d'ennui avec les htaccess.
            Cordialement.
            __
            Eddy !!!
            Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

            Commentaire


            • #7
              Bonjour

              Juste un petit rappel:

              Envoyé par Eddy.vh Voir le message
              Un site peut (et doit selon moi) être à la racine, aux côtés du premier, second, troisième, etc.
              Faut quand même essayer d'en avoir le moins possible car chaque site peut être une porte ouverte pour les attaques (virus). Si on a tout plein de sites et qu'on oublie de mettre "tel site" à jour (parce que de tests, ...), ce site-là deviendra une faille et si un virus est introduit, il pourra contaminer tous les sites présents sur le même FTP.

              Bonne journée.
              Christophe (cavo789)
              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

              Commentaire


              • #8
                C'est bien vrai Christophe mais dans la racine ou pas, le problème reste le même.
                Et puis faut toujours mettre ses site à jour et tous les protéger, même ceux de tests hein ?
                Cordialement.
                __
                Eddy !!!
                Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X