Du betreibst ein HumHub-Netzwerk und möchtest es für Suchmaschinen optimieren?
Dann sind verständliche URLs eine wichtige Grundlage.
In diesem Artikel erkläre ich dir, wie du diese bei HumHub einstellst.
PrettyURLs
Überprüfe zu allererst, ob du PrettyUrls aktiviert hast. Dein Dashboard sollte unter domain.com/dashboard
zu finden sein. Wenn dein Browser stattdessen domain.com/index.php?r=dashboard%2Fdashboard
anzeigt, hast du PrettyUrls noch nicht aktiviert.
PrettyURLs aktivieren
In neueren HumHub-Versionen findest du nach der Installation eine Datei namens env.example
Diese kannst du kopieren oder umbenennen zu .env
Öffne die Datei und ändere die Zeilen
#--- Pretty URLs (Recommended)
#HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__SHOW_SCRIPT_NAME=false
#HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__ENABLE_PRETTY_URL=true
zu:
#--- Pretty URLs (Recommended)
HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__SHOW_SCRIPT_NAME=false
HUMHUB_CONFIG__COMPONENTS__URL_MANAGER__ENABLE_PRETTY_URL=true
Es werden also die Rautezeichen am Anfang der zweiten und dritten Zeile entfernt. (Die erste Zeile ist lediglich ein Kommentar, um in der Datei einen guten Überblick zu behalten.)
Wenn du deine Seite nun aufrufen kannst, musst du nichts weiter tun.
Sollte dein Webserver Apache sein, wie auf den meisten gängigen Servern, muss du noch eine weitere Datei kopieren, die Datei .htaccess.dist
Kopiere diese Datei oder benenne sie um zu .htaccess
(mit dem Punkt am Anfang).
In den allermeisten Fällen genügt das um PrettyURLs zu aktivieren. Aber jede Server-Konfiguration kann anders sein. Falls es nicht geklappt hat, schaue in die offizielle HumHub-Dokumentation zu PrettyUrls und wende dich an die HumHub Community.
URLs optimieren
Auch mit aktivierten PrettyURLs sind leider nicht alle HumHub-URLs SEO-freundlich. Beispielsweise die URLs zur Einzelansicht von Beiträgen und anderen Inhalten. Sie sehen zum Beispiel so aus: community.humhub.com/s/announcements/post/post/view?id=17422
Achtung: Bevor du an deiner Konfigurationsdatei etwas änderst, kopiere die Datei, damit du sie im Falle eines Fehlers widerherstellen kannst. Schon ein kleiner Tippfehler, kann dein Netzwerk unerreichbar machen.
Die Konfigurations-Datei findest du unter protected/config/common.php
Nun ergänzt du die Datei mit rules
wie in folgendem Beispiel für das Legal Tools-Modul:
return [
'components' => [
'urlManager' => [
'rules' => [
[
'pattern' => 'terms',
'route' => 'legal/page/view',
'defaults' => ['pageKey' => 'terms']
],
[
'pattern' => 'imprint',
'route' => 'legal/page/view',
'defaults' => ['pageKey' => 'imprint']
],
[
'pattern' => 'privacy',
'route' => 'legal/page/view',
'defaults' => ['pageKey' => 'privacy']
]
],
],
],
];
pattern
ist die neue URL (ohne Domain)route
ist die bisherige URL (ohne Domain), also das was nachdomain.com/
und vor dem Fragezeichen kommt.defaults
sind die Paramater der bisherigen URL, die nach dem Fragezeichen kommen. Aus?pageKey=imprint
wird['pageKey' => 'imprint']
.
Beitrags-URLs optimieren
Wenn die einzelne Beiträge bei der Suchmaschinenoptimierung besonders wichtig sind, kannst du eine lesbare URL für sie anlegen.
Mithilfe des SEO-Moduls
Aktiviere den SEO-Modus in den Modul-Einstellungen, wenn du das nicht bereits getan hast.
Öffne die Einzelansicht des Beitrags. Gehe dazu im Dropdown-Menü eines Beitrags auf „Permalink“ und dann auf „Öffnen“. Klicke nun auf den „SEO bearbeiten“-Button.
Dir wird dort ein Code-Schnipsel angezeigt, den du in deine Konfigurationsdatei als neue URL-Regel einfügen kannst. Orientiere dich an folgendem Beispiel und dem Beispiel oben.
Achtung: Bevor du an deiner Konfigurationsdatei etwas änderst, kopiere die Datei, damit du sie im Falle eines Fehlers widerherstellen kannst. Schon ein kleiner Tippfehler, kann dein Netzwerk unerreichbar machen.
<?php
return [
'components' => [
'urlManager' => [
'rules' => [
[
'pattern' => 'my-post',
'route' => 'post/post/view',
'defaults' => ['id' => '5', 'cguid' => '864e917d-a839-4733-b239-89468d63b0e6']
],
],
],
],
];
my-post
: neue URLpost/post/view
: alte URL ohne Parameter5
: ID des Beitrags864e917d-a839-4733-b239-89468d63b0e6
: GUID des Spaces, in dem der Beitrag geschrieben wurde