Sprechende Links! Aber wie?

3 | 8512 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Sprechende Links! Aber wie?" mit Ihrem Wissen!

Anzeige Hier werben

Grundkenntnisse in Ordnerstruktur, PHP, etc. setzte ich hier erstmal voraus, abändern und verfeinern darf ja jeder diesen Artikel.

Als 1. benötigt Ihr in eurem Rootverzeichnis wo eure Dokumente liegen eine .htaccess und eine index.php Datei.

Die .htaccess regelt es erstmal das alle Anfragen welche an die Seite gestellt werden an die index.php weitergeleitet werden. Also egal ob www.domain.de/kontakt oder www.domain.de/wurst aufgerufen wird, es wird immer die index.php geladen.

 
Text
1
2
3
4
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|jpeg|png|css|pdf)$ index.php [NC,QSA,L]
 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
// auslesen was aufgerufen wurde
$sRequestUri = $_SERVER['REQUEST_URI'];

// String in seine Einzelteile zerlegen
$aRequestSplitted = array_filter(explode('/', $sRequestUri));

// Einzelteilen passende Variablen zuweisen
$sModule = $aRequestSplitted[1];
$sCategory = $aRequestSplitted[2];

Mit dieser Variante habt Ihr die Möglichkeit das umleiten ganz nach euren Bedürfnissen per PHP anzupassen.
Wenn Ihr eine feste Regel festlegen wollt gibt es noch eine 2. Variante wie man sprechende URLs erstellen kann.

 
Text
1
2
3
4
5
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([^/]+)$ index.php?gallery=$1 [QSA,L] 
RewriteRule ^([^/]+)/([^/]+)$ index.php?module=$1&category=$2 [QSA,L] 
 
PHP
1
2
3
4
<?php
// Einzelteilen passende Variablen zuweisen
$sModule = $_GET['module'];
$sCategory = $_GET['category'];

Die 1. Variante ist in der Art besser, da Ihr dort per PHP if-Abfragen noch abwegen könnt welche Variable wem zugewiesen wird.

Dieser Artikel bringt so erstmal nur einen kleinen Einblick in das Thema "sprechende URLs" und soll den Anstoß zu einem großen Artikel geben.
Ich hoffe das sich ganz viele Leute an diesem Thema beteiligen werden und es ein richtig ausführlicher Artikel wird.

Beispiel für das 1. Verfahren mit einer Klasse gekoppelt

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
$oSpeekingLink = new SpeekingLink($_SERVER['REQUEST_URI']);
$oSpeekingLink->module = 1;
$oSpeekingLink->category = 2;

echo $oSpeekingLink->module;
echo $oSpeekingLink->category;


/**
 * Diese Klasse dient zum verarbeiten von "sprechenden Links"
 * 
 * @author Christian Kehres
 */
class SpeekingLink
{
    private $aRequestsSplitted = array();
    private $aRequests = array();

    /**
     * Diese Funktion liest den Request ein und zerteilt ihn um ihn dann in ein Array zu speichern
     *
     * @param $sRequestUri
     *
     * @example $oSpeekingLink = new SpeekingLink($_SERVER['REQUEST_URI']);
     */
    public function __construct($sRequestUri)
    {
        $this->aRequestsSplitted = array_filter(explode('/', $sRequestUri));
    }

    /**
     * Diese Funktion weist einer gewünschten Variable einen gewünschten Teil aus dem Request zu
     *
     * @param $sName Name der Variable
     * @param $iKey Key aus dem Array mit dem Wert dem die Variable zugewiesen werden soll
     *
     * @example $oSpeekingLink->module = 1;
     */
    private function __set($sName, $iKey)
    {
        if (is_numeric($iKey)) {
            $this->aRequests[$sName] = $this->aRequestsSplitted[$iKey];
        }

    }

    /**
     * Diese Funktion gibt den Wert einer gewünschten Variable aus
     *
     * @param $sName
     * @return mixed
     *
     * @example echo $oSpeekingLink->module;
     */
    private function __get($sName)
    {
        if (isset($sName)) {
            return $this->aRequests[$sName];
        }
    }
}

Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 3 Personen an der Seite "Sprechende Links! Aber wie?" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Sprechende Links! Aber wie?" hier bearbeiten.

Mitarbeiter