SEO- und benutzerfreundliche URLs mit mod_rewrite

Snoopy
Beiträge: 79
Registriert: Di 30. Jun 2015, 14:02

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von Snoopy » Mi 29. Jul 2015, 10:29

shadowcat hat geschrieben: Übrigens gibt es noch einen offenen Issue wegen der lang= Dinger.
Bis auf Fehlermeldung (Entschuldigung, kein Zugriff) bei ausgeschalteter Homepage-Weiterleitung habe ich mit lang= keine Probleme gehabt.
Seit Einschalten der Homepage-Weiterleitung jetzt keine Probleme mehr. :D
Ciao,
Snoopy

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mi 29. Jul 2015, 10:47

Abgesehen von der Fehlermeldung ist das exakt der offene Issue. Das betrifft das show_menu().
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Fr 21. Aug 2015, 15:07

Bitte teste mal folgendes: In Datei ./framework/CAT/Helper/Page.php die Funktion getLink() komplett austauschen.

Code: Alles auswählen

        /**
         *
         *
         *
         *
         **/
        public static function getLink($page_id)
        {
            if(!is_numeric($page_id))
                $link = $page_id;
            else
                $link = self::properties($page_id,'link');

            if(!$link)
                return NULL;

            // Check for :// in the link (used in URL's) as well as mailto:
            if (strstr($link, '://') == '' && substr($link, 0, 7) != 'mailto:')
                return CAT_URL.PAGES_DIRECTORY.$link.PAGE_EXTENSION.(isset($_GET['lang'])?'?lang='.$_GET['lang']:'');
            else
                return $link;

        }   // end function getLink()
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Snoopy
Beiträge: 79
Registriert: Di 30. Jun 2015, 14:02

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von Snoopy » Fr 21. Aug 2015, 23:04

Guten Abend,

leider verschlimmert dieser Austausch das Problem auf das Extremste!
Dann sind nicht einmal die englischen Menüs erreichbar!
Testaufbau (nicht angemeldet am Backend, weil dies das Ergebnis total verfälscht):
Page.php nach Vorgabe modifiziert hochgeladen.
Startseite https://domain.tld/ aufgerufen
Englische Flagge angeklickt. Die URI wechselt auf https://domain.tld/welcome.php?lang=EN
Jetzt wollte ich eigentlich durch englische Menüs auf eine Seite navigieren, auf der ich noch Links direkt im <body> stehen habe.
Die meisten habe ich bis zum Fix entfernt, damit ausländische Besucher oder Freunde, die meine engl. Seiten auf Fehler prüfen nicht dauernd von Fehlerseite zu Fehlerseite stolpern, dann bin ich rasch alle Besucher los.
Aber schon das Anklicken eines englischen Menüs führt zum unten eingefügten Fehlerbild.
Der Parameter bei den englischen Links kommt mir seltsam vor, habe hier mal einen einkopiert:
https://domain.tld/page/seitenname.php?lang=EN?lang=EN
Sobald ich dann darauf klicke, kommt reproduzierbar dieses Fehlerbild:
FM_Fatal_Error_nach_Klick_auf_engl_Link.jpg
FM_Fatal_Error_nach_Klick_auf_engl_Link.jpg (32.99 KiB) 3007 mal betrachtet
Sobald ich wieder die vorherige Page.php verwende (mit der am 28.07. genannten kleinen Modifikation), sehen URIs der Menüs korrekt aus:
https://domain.tld/page/seitenname.php?lang=EN
Jetzt muss ich schon länger navigieren, um wieder auf die Fehlermeldung zu stoßen.
Solange der Besucher nun keine Links auf der Seite benutzt, sondern "brav die Menüführung nutzt", geht alles gut.

Also habe ich nun einen der Textlinks modifiziert (Parameter angefügt):
<p><a href="[cmsplink21]?lang=EN" title="Literature">< back to Literature Sitemap</a></p>

Fazit: Fehler eliminiert. Aber außer Anker möchte ich nicht auch dauernd Sprachparameter manuell einfügen müssen ... :lol:
Ciao,
Snoopy

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » So 23. Aug 2015, 13:37

Kann ich mal Dein Template haben? Irgendwas ist da kraus... Ich kann das Problem nicht nachstellen.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Snoopy
Beiträge: 79
Registriert: Di 30. Jun 2015, 14:02

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von Snoopy » So 23. Aug 2015, 16:35

Hallo shadowcat,

sehr gern, schicke ich Dir nachher von zuhause, bin gerade im Café.
Vorab: meine Website kennst Du ja inzwischen, hatte Dir per PM die Adressen gemailt.
Aber in ca. einer Stunde hast Du die Datei.
Ciao,
Snoopy

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 09:09

Irgendwas ist da oberfaul, die Meldung, die Du bekommst, sollte eigentlich nur kommen, wenn eine Seite auf "privat" gestellt ist und der Besucher eben wirklich keine Rechte hat. Das muß ein ganz fieser versteckter Bug sein. :evil: Danke für Deine Unterstützung, ich rück dem Vieh mal auf den Pelz.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 14:09

Arghl! Es genügt, einer Seite per lang= eine andere Sprache als die aktuelle Seitensprache mitzugeben. Also zum Beispiel: Die Seite willkommen.php hat die Seitensprache DE. Rufe ich sie nun mit willkommen.php?lang=EN auf, kriege ich den "nicht erlaubt" Fehler. :? Heidernei...
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 14:33

So, okay, ich habe die Stelle gefunden, aber nu hab ich mal wieder einen Knoten im Hirn.

Also es ist so: Wenn die visibility auf "public" steht, wird die Sprache geprüft. Weichen Seitensprache und aktuell gewählte Sprache voneinander ab, wird als Ergebnis des Checks "false" zurückgeliefert. Das Ergebnis ist besagte "Sie dürfen das nicht"-Fehlermeldung. So weit, so doof.

Nehmen wir nun die Prüfung mal weg. Was ist das Ergebnis? Die Seite wird angezeigt, der Benutzer hat aber das Menü der gewählten Sprache. In dem die aktuell angezeigte Sprache also nicht auftaucht. Watt nu?
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 14:35

Das ist übrigens, was WB draus macht:
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Antworten