erreur 404 après instal plugin MyBetterUrls

webassowebasso Member

Bonjour, je ne vois pas comment rectifier cette erreur.
Après création d'un article dans la partie privée on voit : http://www.quilucru.ouvaton.org/article1/le-chef-des-indiens-hopi-white-eagle-a-commente-la-situation-presente-il-y-a-quelques-jours
et en public l'url qui va bien : http://www.quilucru.ouvaton.org/le-chef-des-indiens-hopi-white-eagle-a-commente-la-situation-presente-il-y-a-quelques-jours ...mais avec l'erreur 404 donc l'article n'apparait pas...
Où est mon erreur, comment rétablir svp ?

Réponses

  • Salut webasso,

    dans la configuration avancée, désactive, enregistre, puis réactive la réécriture d'URL et enregistre de nouveau.

  • webassowebasso Member

    Bonjour, je l'ai fait plusieurs fois ... mais ça ne marche pas !

  • webassowebasso Member

    ... je viens même de supprimer le plugin MyBetterUrls et l'ai réinstallé (avec la réécriture d'URLS activée) mais rien n'y a fait j'ai toujours l'erreur 404

  • Bonjour,

    Désactive la ré-écriture d'Urls et le plugin MyBetterUrls.
    L'url de l'article doit alors être :
    http://www.quilucru.ouvaton.org/index.php?article1/le-chef-des-indiens-hopi-white-eagle-a-commente-la-situation-presente-il-y-a-quelques-jours
    Si ce n'est pas le cas, donnes nous le contenu du fichier .htaccess à la racine de ton site.
    Vérifie également les droits en écriture de ce fichier avec ton logiciel ftp
    Tu as quelle version de PHP ?

  • webassowebasso Member

    Bonjour, chose faite, c'est ok j'ai bien ce que tu dis : http://www.quilucru.ouvaton.org/index.php?article1/le-chef-des-indiens-hopi-white-eagle-a-commente-la-situation-presente-il-y-a-quelques-jours

    • de ce coté là ça marche... mais ça marchait aussi avant, c'est avec le plugin MyBetterUrls que ça ne marche pas !
    • que dois-je faire ? Activer la réécriture d'URL et le plugin ... ?
  • Il faut faire une chose à la fois

    • réactive la réécriture d'urls et teste
    • si ok active le plugin et teste
    • si erreur 404, donne le contenu de .ht_access, version de PluXml et PHP

    Je ne suis pas certain que ce plugin marche avec la version 5.8.6 de PluXml.

  • webassowebasso Member

    ... ça n'a pas marché,
    version PHP 7,4
    PluXml = 5;8
    contenu fichier .htaccess :

    BEGIN -- Pluxml

    Options -Multiviews

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    Réécriture des urls

    RewriteRule ^(article\d|categorie\d|tag|archives|static\d|blog|page\d|telechargement|download)\b(.)$ index.php?$1$2 [L]
    RewriteRule ^feed\/(.
    )$ feed.php?$1 [L]

    END -- Pluxml

  • Modifie la configuration du plugin plxMyBetterUrls comme ceci :
    copie écran

    Il faut le numéro de version de PluXml avec les 3 chiffres.

    P.S. Pour faire un copier-coller commencer par ``` et finir par ```( à droite de la fameuse touche le tiret du 6 )

  • webassowebasso Member

    Merci, ça marche mais du coup j'ai "article" avant le nom de l'article... le plugin n'est pas compatible ?
    La version PluXml = 5.8.6

  • Le plugin est compatible avec la config que je t'ai donné.
    Avec la version 5.8.6 les règles de ré-écriture sont plus strictes pour éviter des erreurs 404 avec des trackers publicitaires ajoutés dans l'url par des sites comme Tripadvisor, Facebook, ...

    S'il te venait l'idée d'utiliser les plugins plxMySearch ou plxMyContact, il faut rajouter les lignes suivantes dans .htaccess :

    # Plugins "officiels" plxMySearch, plxMyContact
    RewriteRule ^(search|contact)\b(.*)$ index.php?$1$2 [L]
    

    Voir discussion
    https://forum.pluxml.org/discussion/6921/resolu-problemes-avec-plxmysearch#latest#Comment_61455

  • webassowebasso Member

    Merci pour tes réponses et conseils... oui j'ai prévu d'utiliser au moins le plugin plxMySearch pour FB justement mais je me demandais si ce plugin pouvait aussi envoyer vers un nouveau réseau que j'utilise et qui n'est pas encore connu il s'agit de https://solidarita.net/jvlib26 concernant mon profil...

  • webassowebasso Member

    ... Je viens de remarquer une erreur supplémentaire, je ne sais pas si elle est liée à l'ajout du plugin
    quand je veux après création d'un article le visualiser avant publication (donc en tant que brouillon) mais pas que parce qu'une fois publié l'erreur est restée, en utilisant le bouton "aperçu" je me retrouve avec la même erreur 404 (http://www.quilucru.ouvaton.org/preview)
    ya moyen de régler ça ?

  • webassowebasso Member

    Dans la série plugin...
    en utilisant le plugin plxMyPluginDownloader j'ai téléchargé les plugins : CKEditor - version 4.7.3 (28/11/2017) et MySocialButtons - version 1.4.1 (06/11/2014)
    Problème : ils n'apparaissent pas dans http://www.quilucru.ouvaton.org/core/admin/parametres_plugins.php même après avoir cliqué dans le menu des plugins sur : Plugins inactifs (2)
    quel est le problème ?

  • Plugin plxMyBetterUrls

    Pour l'aperçu, l'url ressemble à "index.php?preview".
    Comme on est côté site, le plugin fait une redirection d'url permanente (code 301) vers "preview".
    Ce qui n'est pas très normal.

    Pour corriger ce problème, il faut modifier la fonction "Redirect301()" dans le fichier "plxMyBetterUrls.php" vers la ligne n°47 comme ceci :

        public function Redirect301() {
    
            echo '<?php
            // début de la modif
                     if(preg_match("#/index\.php\?preview$#", $_SERVER["REQUEST_URI"])) {
                # Preview
                return;
            }
                    // fin de la modif
    
            if(!defined("PLX_ADMIN") AND substr(str_replace($_SERVER["QUERY_STRING"], "", $_SERVER["REQUEST_URI"]),-1)=="?") {
                # redirection si lien http://server.com/?contenu vers http://server.com/contenu
                header("Status: 301 Moved Permanently", false, 301);
                header("Location: ".$this->urlRewrite($_SERVER["QUERY_STRING"]));
                exit();
            }
    // ...... 
    

    Inutile de copier les lignes avec "modif".

    ATTENTION : comme c'est une redirection permanente, le navigateur peut vous jouer un tour avec son cache.
    Si vous avez une erreur 404, avec l'url preview, avec Firefox, taper simultanément sur les touches Maj-Ctrl-Suppr, cocher tout et valider et rouvrir la connection au back-office

    Autre point. Ce n'est pas un bug mais ce plugin n'a pas à fonctionner dans le back-office. Il faut ajouter la balise <scope> dans le fichier infos.xml comme ceci :

    <?xml version="1.0" encoding="UTF-8"?>
    <document>
        <title><![CDATA[MyBetterUrls]]></title>
        <author><![CDATA[Stephane F.]]></author>
        <version>1.5.5</version>
        <date>10/04/2017</date>
        <site>http://pluxopolis.net/</site>
        <description><![CDATA[Amélioration des urls de PluXml]]></description>
        <scope>site</scope>
        <requirements></requirements>
    </document>
    

    C'est un plugin officiel et l'auteur est parti.
    Comme ils disent dans la pub Lidl : "On est mal, patron".

  • webassowebasso Member

    Bonjour,
    je ne suis pas sur de bien faire, merci pour plus de précision... je n'ai pas semble t-il la même chose dans mon fichier Php que l'exemple que tu fournis, que dois-modifier exactement à l'endroit qui convient ?
    } if(preg_match("/index.php\?(tag|archives)\/(.*)/", $_SERVER["REQUEST_URI"], $capture)) { header("Status: 301 Moved Permanently", false, 301); header("Location: ".$this->urlRewrite($capture[1]."/".$capture[2])); exit(); }

  • webassowebasso Member

    ... C'est peut-être mieux de mettre le contexte entier
    ```public function Redirect301() {

        echo '<?php
        if(!defined("PLX_ADMIN") AND substr(str_replace($_SERVER["QUERY_STRING"], "", $_SERVER["REQUEST_URI"]),-1)=="?") {
            # redirection si lien http://server.com/?contenu vers http://server.com/contenu
            header("Status: 301 Moved Permanently", false, 301);
            header("Location: ".$this->urlRewrite($_SERVER["QUERY_STRING"]));
            exit();
        }
        if(preg_match("/^(article|static|categorie)[0-9]+\/([a-z0-9-]+)(\/page[0-9]+)?/", $this->get, $capture)) {
            if($capture[1]!="'.$this->getParam('format_article').'") {
                $page=isset($capture[3])?$capture[3]:"";
                header("Status: 301 Moved Permanently", false, 301);
                header("Location: ".$this->urlRewrite($capture[2]."'.$this->getParam('ext_url').'".$page));
                exit();
            }
        }
        if(preg_match("/index.php\?(tag|archives)\/(.*)/", $_SERVER["REQUEST_URI"], $capture)) {
            header("Status: 301 Moved Permanently", false, 301);
            header("Location: ".$this->urlRewrite($capture[1]."/".$capture[2]));
            exit();
        }
        ?>';
    
    } ```
    
  • bazooka07bazooka07 Member
    13 avril modifié
        public function Redirect301() {
    
            echo '<?php
            if(
                preg_match("#/index\.php\?preview$#", $_SERVER["REQUEST_URI"]) or
                (
                    isset($_SERVER["HTTP_REFERER"]) and
                    preg_match("#/core/admin/\w+\.php#", $_SERVER["HTTP_REFERER"])
                )
            ) {
                # Preview
                return;
            }
    
            if(!defined("PLX_ADMIN") AND substr(str_replace($_SERVER["QUERY_STRING"], "", $_SERVER["REQUEST_URI"]),-1)=="?") {
                # redirection si lien http://server.com/?contenu vers http://server.com/contenu
                header("Status: 301 Moved Permanently", false, 301);
                header("Location: ".$this->urlRewrite($_SERVER["QUERY_STRING"]));
                exit();
            }
            if(preg_match("/^(article|static|categorie)[0-9]+\/([a-z0-9-]+)(\/page[0-9]+)?/", $this->get, $capture)) {
                if($capture[1]!="'.$this->getParam('format_article').'") {
                    $page=isset($capture[3])?$capture[3]:"";
                    header("Status: 301 Moved Permanently", false, 301);
                    header("Location: ".$this->urlRewrite($capture[2]."'.$this->getParam('ext_url').'".$page));
                    exit();
                }
            }
            if(preg_match("/index.php\?(tag|archives)\/(.*)/", $_SERVER["REQUEST_URI"], $capture)) {
                header("Status: 301 Moved Permanently", false, 301);
                header("Location: ".$this->urlRewrite($capture[1]."/".$capture[2]));
                exit();
            }
            ?>';
    
        }
    

    Modifier aussi infos.xml

  • webassowebasso Member

    Merci, ça marche pour les articles mais pas pour la page static...
    il y a quelque chose à rajouter quelque part ?

  • bazooka07bazooka07 Member
    12 avril modifié

    Effectivement, l'aperçu des pages statiques pose problème.
    Il faut modifier le premier "if" dans Redirect301().
    Voir mon billet précédent modifié à 19h38.

    Penser à purger le cache du navigateur.

  • webassowebasso Member

    Super, c'est ok pour l'aperçu des articles qui s'ouvrent dans un autre onglet du navigateur, mais ce n'est pas le cas pour la page static qui s'ouvre au même endroit...
    C'est possible d'y apporter une modif supplémentaire ?

  • Pour l'onglet des pages statiques, c'est un bug dans PluXml.

    • soit tu maintiens la touche Ctrl quand tu cliques sur le bouton avec la souris
    • soit tu rajoutes l'attribut target à la ligne n°77 du fichier core/admin/statique.php comme ceci :
    <a href="<?php echo $url ?>" target="_blank"><?php echo L_STATIC_VIEW_PAGE ?> <?php echo plxUtils::strCheck($title); ?> <?php echo L_STATIC_ON_SITE ?></a>
    
  • webassowebasso Member

    Merci,
    En modifiant le fichier ça marche au poil !
    Concernant la question sur le plugin plxMySearch pour FB et ma demande liée du post du 11 avril où je me demandais si ce plugin pouvait aussi envoyer vers un nouveau réseau que j'utilise et qui n'est pas encore connu il s'agit de https://solidarita.net/jvlib26 concernant mon profil... est-ce que je le transferts dans une autre discussion où tu peux y répondre ici ?

  • Pour FB, je pense que tu confonds plxMySearch avec un autre plugins ( socialboutons... ?)
    Pour l'autre point, voir l'autre fil de discussion

  • Il y a un message qui surgit lorsqu'on connecte la première fois sur le site ( $_SERVER["HTTP_REFERER"] manquant.
    Pour la correction, voir le billet du 12 avril modifié ce jour à 10h35.

  • webassowebasso Member

    Merci, je viens de modifier le fichier... tu me diras si c'est ok parce que je ne vois pas comment le vérifier, merci d'avance

    • concernant le plugin lié au réseaux sociaux... lequel est valable et est-ce que ma demande le concernant est réalisable ?
  • Pour vérifier, ferme ton navigateur

    • Ouvre le à nouveau
    • Affiche la page d'accueil de ton site
    • Normalement pas de message d'erreur
  • webassowebasso Member

    Ok, ça marche
    Merci

Connectez-vous ou Inscrivez-vous pour répondre.