title image


Smiley ... oder auch Suchmaschienenoptimierung
Hi,



also clientseitig über JavaScript gibt's nicht wirklich (Adressleiste ausblenden, siehe Lösung 1 b)) eine Lösung.

Mir fallen 3 Lösungen ein.



1. Lösung:



a) HTML-Frameset-Lösung (am einfachsten, kompatibelsten)



Setze als Startseite (z.B. http://www.test.de/index.php) eine Framesetseite mit einem Frame, in der die Startseite mit der langen Parameterkette/URI (start.php?folder=test&site=test&id=53535353&...) geladen wird.



b) Für JavaScript-Besucher (die anderen bekommen alternativ die Seite wie gewohnt ohne "angepasste URL" im neuen Fenster angezeigt)



Setze als Startseite (z.B. http://www.test.de/index.php) eine "Eingangsseite", die nur dazu dient, über einen Eingangs-/Enter-Button die wirkliche Startseite in einem eigenen JavaScript-Popup (window.open('start.php','','location=no')) ohne Adressleiste zu öffnen.



2. Lösung: Serverseitig über Webserverkonfiguration z.B. durch Mod-Rewrite beim Apache (komplizierteste)



Wird bei wenigen Webhost-Angeboten unterstützt, öfters aber über htaccess möglich.

Hierbei werden alle Anfragen auf www.test.de zentral an 1 Stelle (Konfiguration des Apache Webservers über httpd.conf bzw. auch .htaccess-Datei) aufgefangen und verarbeitet (Anwendung von Regulären Ausdrücken/Zeichenmuster), z.B. kann man für Anfragen z.B. dieses Musters /index.php?folder=test&site=test&id=53535353&... serverseitig die im Browser angezeigte URL nach /test53535353.html umschreiben (test53535353.html existiert hierbei nicht d.h. ist virtuell).



iX-Artikel



Engelschall-Rewriting Guide



Apache 1.3 mod_rewrite Doku



Apache 2.0 mod_rewrite Doku



Tutorial 1



Tutorial 2



Traumprojekt.com - Thread



etc.



3. Lösung: überdenke deine Backend-Lösung PHP/MySQL (klügste)



... so dass du statt index.php?folder=test&site=test&id=53535353...

index.php?id=53535353&... index.php?test_id=53535353 erhältst (bzw. index.php?folder_id=123 und index.php?site_id=1234).



Das schaffst du indem du deine MySQL-Tabellen/DB-Struktur und/oder den Zugriff(insbesondere SQL-Abfrage Entwurf) über PHP auf diese Struktur anpasst.



Bsp. DB-Struktur mit Beispieldaten für index.php?folder=test&site=test&id=53535353...







projektname_folders











id parent_id name ...

1 0 Ordner 1

2 0 Ordner 2

3 0 Ordner 3

4 1 Ordner 1 1

5 1 Ordner 1 2

6 3 Ordner 3 1

7 3 Ordner 3 2

8 7 Ordner 3 2 x

...











projektname_sites











id folder_id (parent_id) name ...

1 2 0 Ordner 2 Seite

2 2 1 Ordner 2 Seite 1

3 2 2 Ordner 2 Seite 1 x

4 8 0 Ordner 3 2 x Seite

...











projektname_tests











id site_id name ...

1 1 Test 1

2 1 Test 2

3 1 Test 3

4 3 Test 4

5 3 Test 5

6 4 Test 6

...







Bsp. PHP-Zugriff auf 1 Test der Bsp. DB-Struktur:







/*



SELECT f.id AS folder_id, f.parent_id AS folder_parent_id, f.name AS folder_name, f.etc AS folder_etc,

s.id AS site_id, s.parent_id AS site_parent_id, s.name AS site_name, fs.etc AS site_etc,

t.id AS test_id, t.site_id AS test_site_id, t.name AS test_name, t.etc AS test_etc

FROM projektname_tests t

LEFT OUTER JOIN projektname_sites s ON s.id = t.site_id

LEFT OUTER JOIN projektname_folders f ON f.id = s.folder_id

WHERE t.id = $_GET["id"]



*/











$sql = "SELECT f.id AS folder_id, f.parent_id AS folder_parent_id, f.name AS folder_name, f.etc AS folder_etc, ";

$sql .= "s.id AS site_id, s.parent_id AS site_parent_id, s.name AS site_name, fs.etc AS site_etc, ";

$sql .= "t.id AS test_id, t.site_id AS test_site_id, t.name AS test_name, t.etc AS test_etc ";

$sql .= "FROM projektname_tests t ";

$sql .= "LEFT OUTER JOIN projektname_sites s ON s.id = t.site_id ";

$sql .= "LEFT OUTER JOIN projektname_folders f ON f.id = s.folder_id ";

$sql .= "WHERE t.id = '".$_GET["id"]."'";







MfG Murdoch!

aktuelle Winamp Playlist                Hörgewohnheiten (Last.fm)



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: