WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 25.11.2020 13:25:02

florian
Administrator

Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

Auf Seiten mit mehreren Sprachen, bei denen shortURL zum Einsatz kommt, fügt shortURL (SEO-)ungünstigerweise beim Wechsel der Sprache oder auch Aufruf der Seite in der Nicht-Standardsprache des Benutzers bzw. Besuchers einen Parameter _wb an die URL an, in dem noch einmal die gekürzte Adresse der gerade aufgerufenen Seite steht.

Beispiel:
https://www.camex.info/de/home/?_wb=de/home

Lässt sich das irgendwie abstellen?

WBCE 1.4.5, Multiligual 1.9.2, shortURL 4.0, PHP 7.2.26


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#2 09.03.2021 09:29:12

florian
Administrator

Re: Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

So scheint's zu funktionieren:
framework/class.frontend.php, nach Zeile 154

// check if there is an query-string

einfügen

$wbStr = substr($_SERVER['QUERY_STRING'],strpos($_SERVER['QUERY_STRING'],"_wb"),strrpos($_SERVER['QUERY_STRING'],"/")+1);
// check if theres a _wb string from shortURL
//debug_dump($wbStr);
//die();
$qStr = str_replace($wbStr,'',$_SERVER['QUERY_STRING']);
if ($qStr!='') {
	header('Location: ' . $sUri . '?' . $qStr);
} else {
	header('Location: ' . $sUri );
}

Effektiv ist allerdings anders... hm...


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 09.03.2021 10:23:34

mrbaseman
Developer

Re: Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

auch sicher nicht besonders effektiv, aber vielleicht zuverlässiger wenn Module auch noch Get-Parameter mitschicken:

$qstr=$_SERVER['QUERY_STRING'];
parse_str($qstr, $param);
unset($param['_wb']);
$qstr=http_build_query($param);
if ($qStr!='') {
	header('Location: ' . $sUri . '?' . $qStr);
} else {
	header('Location: ' . $sUri );
}

Beitrag geändert von mrbaseman (09.03.2021 10:23:59)

Offline

Liked by:

florian

#4 09.03.2021 10:33:52

florian
Administrator

Re: Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

Funktioniert super, vielen Dank.
Sollten wir mit in den Core aufnehmen.

Beitrag geändert von florian (10.03.2021 06:43:50)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#5 10.03.2021 07:02:00

florian
Administrator

Re: Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

Doch noch was übersehen. Jetzt aber:

$qstr='';
if (isset($_SERVER['QUERY_STRING'])) { $qstr=$_SERVER['QUERY_STRING']; }
parse_str($qstr, $param);
unset($param['_wb']);
$qstr=http_build_query($param);
if ($qstr!='') {
	header('Location: ' . $sUri . '?' . $qstr);
} else {
	header('Location: ' . $sUri );
}

Code allein macht nicht glücklich. Jetzt spenden!

Offline

#6 13.03.2021 17:58:34

colinax
Developer

Re: Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

Ist diese Lösung nur gut wenn  Shorturl vorhanden ist oder kann es allgemein in den Core, ohne dass es Nebenwirkungen gibt?

Offline

#7 13.03.2021 20:48:50

mrbaseman
Developer

Re: Shorturl + Mehrsprachigkeit = unschöner URL-Parameter ?_wb=/de/seite

Vielleicht noch ein if-Konstrukt drum herum, damit das nicht in vielen Fällen unnötigerweise ausgeführt wird

Offline

Fußzeile des Forums

up