php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.10.2010, 19:11  
Benutzer
 
Registriert seit: 04.10.2010
Beiträge: 62
PHP-Kenntnisse:
Fortgeschritten
Geryon befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Ist diese URL noch sauber?

Hallo und vielen Dank für den tolen Support überhaupt hier im Forum.

Ich möchte gerne den nächsten Abschnitt meiner Arbeit reflektieren. Wie der Titel schon vermuten lässt geht es hier um 'saubere' URLs.

Bevor ich meinen Ansatz vorstelle möchte ich gerne wissen, ob sich dafür mittlerweile auch ein richtiger Name etabliert hat. Also neben 'saubere url' oder 'lesbare url'. Das würde mir sicher helfen einfach noch mal genauer nachzulesen.

Mein Konzept der URLs weicht vom Klassischen Aufbau ab.

Oft gesehen habe ich Ansätze wie: domain.de/Key/Value/Key/Value/Key/Value.html

Ich verfolge jedoch etwas in dieser Art: domain.de/Key-Value/Key-Value/Key-Value.html

Ich denke zwar, dass diese Art des Aufbaus den meisten Leuten egal ist, aber trotzdem ist es schon etwas schwerer lesbar als die klassische Variante.

Wie auch immer. Der Grund ist, dass meine Anwendung die URL in ein Array mit Keys und Values zerlegt. Wichtig an dieser Stelle ist mir, dass auch Keys existieren können, die keine Value besitzen. Die URL sieht dann so aus: domain.de/Key/Key/Key-Value/Key-Value/Key.html

Es würde also ohne Rewrite genau diesem Muster entsprechen: domain.de?key=&key=&key=value&key=

Ich kann bei dieser Methode also unterscheiden, ob es sich bei den Daten in der URL um Keys oder Values handelt.

Nun bin ich in einem Teil der Verwaltung meines Systems in der Lage bestimmte Keys an konkrete Funktionen() des Systems zu binden.

Daher würde zum Beispiel domain.de/page-willkommen/forum-13/thread-74.html nicht nur ein Array erzeugen sondern gleichzeitig Funktionen ausführen, die per Verwaltung an 'page', 'forum' und 'thread' gebunden sind. Und trotzdem wären die Daten och als Array für andere oder die selben Funktionen verfügbar.

Das System merkt also anhand der URL und den hinterlegten Funktionen, was es zutun hat.

Bis hierher würde auch alles mit dem klassischen Style domain.de/key/value/key/value.html funktionieren.

Jetzt möchte ich aber das `page-` vor willkommen loswerden.

Daher möchte ich, dass die Funktion, welche meine Seiten lädt auch ohne 'page-' und nur durch 'willkommen' ausgelöst wird. Das erreiche ich, indem mein System zu jedem Key, der in der URL gefunden wird und aber keine Value aufweist automatisch eine zugehörige Funktion sucht. Wird diese Funktion nicht gefunden oder wurde dieser Key nicht als Action registriert, wird automatisch eine Standardfunktion aufgerufen. Dieser wird die unbekannte Aktion 'Willkommen' als Parameter übergeben. Diese Standardfunktion kann von Extensions überschrieben werden. In diesem Fall von meiner Seitenverwaltung. Nun wird also ‚willkommen’ meiner Seitenverwaltung übergeben. Diese lädt die Seite willkommen oder wahlweise auch eine 404 Seite. Die Standardaction lädt übrigens immer eine 404 Seite.

Beispiele:
Code:
domain.de/Willkommen.html -> lädt die Seite Willommen (Obwohl willkommen keine Action ist)

domain.de/page-willkommen.html -> lädt die Seite Willkommen

domain.de/Willkommen/Forum-13.html -> lädt die Seite Willkommen und fügt das Forum mit der id 13 (oder auch einem Namen) zum Inhalt der Seite hinzu

domain.de/Forum-13/Willkommen.html -> lädt die Seite Willkommen und fügt das Forum mit der id 13 (oder auch einem Namen) zum Inhalt der Seite hinzu (erzeugt das Gleiche wie das Beispiel vorher)

domain.de/sitemap.html -> lädt eine Sitemap für Suchmaschinen mit einer Funktion, die an sitemap gebunden ist

domain.de/robots.txt -> Führt eine Funktion im System aus, die eine robots.txt erzeugt

domain.de/printarticle-15.html -> erzeugt eine Druckansicht für den Artikel mit der id 15
Der Grund, warum ich alles so dynamisch gestalte und nicht gleich in der Rewrite-Regel festlege ist, das ich das System für viele verschiedene Projekte einsetze. Nicht jedes Projekt braucht Seiten bzw. hat an dieser Stelle evtl. was anderes eingebaut.
Geryon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.10.2010, 19:37  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Hi,

was genau ist jetzt deine Frage? Ich sehe jetzt ehrlich gesagt auch nicht so ganz den Zusammenhang zum Softwaredesign. Du hast einen Front-Controller, der über URL-Parameter gesteuert wird. Ob und wie du nun die URLs umschreibst, ist doch vollkommen deine Entscheidung. Mache es so, wie es dir gefällt, wie du meinst, dass es optimal lesbar ist. Suchmaschinen ist es vollkommen egal, wie du die URLs umschreibst, zumindest Google ist es sogar egal, ob du sie überhaupt umschreibst. Wichtig ist bloß, dass du Duplicate Content vermeidest und nicht aus Versehen unter zwei URLs denselben Content anbietest. example.com/index.php?key1=foo&key2=bar ist was anderes als exmaple.com/index.php?ke1=foo. Auch angehängte Ampersands solltest du vermeiden. Mit etwas Pech wird example.com/index.php?key=value als etwas anderes angesehen als example.com/index.php?key=value&
Bei umgeschriebenen URLs ist das genau dasselbe. example.com/key/value ist etwas anderes als example.com/key-value ist etwas anderes als example.com/key1/value1/key2/value2. Auch mit nachfolgenden Slashs wäre ich vorsichtig. Ich leite in aller Regel umgeschriebene Verzeichnisnamen auf die Variante mit Slash um. Also example.com/page1 wird weitergeleitet zu example.com/page1/. example.com/foobar.html wird natürlich ohne Slash belassen, auch wenn es eigentlich auch ein umgeschriebener URL ist, der z.B. eigentlich auf example.com/index.php?url=/foobar.html verweist oder so.

Fazit: wie du umschreibst und ob du umschreibst ist mistegal. Du musst nur konsequent bleiben und auf duplicate Content achten.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 27.10.2010, 20:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Das eine Prinzip ist generisch, das andere konventions-gesteuert, dafür aber individueller. Ich bin da bei Manko:
Zitat:
Mache es so, wie es dir gefällt
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 27.10.2010, 22:47  
Benutzer
 
Registriert seit: 04.10.2010
Beiträge: 62
PHP-Kenntnisse:
Fortgeschritten
Geryon befindet sich auf einem aufstrebenden Ast
Standard

Danke! Evtl. hab ich den BegrifF Design auch zu weit gefasst. Trotzdem ist es hilfreich auch einfach mal was abgesegnet zu bekommen

@Manko10: Danke, dass du mich nochmal an den Duplicate Content erinnert hast. Da hätte ich jetzt nicht daran gedacht.
Geryon ist offline   Mit Zitat antworten
Alt 27.10.2010, 22:49  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Geryon Beitrag anzeigen
@Manko10: Danke, dass du mich nochmal an den Duplicate Content erinnert hast. Da hätte ich jetzt nicht daran gedacht.
Dann erinnere ich gleich auch noch an rel="canonical", bevor das auch vergessen wird
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 28.10.2010, 00:05  
Benutzer
 
Registriert seit: 04.10.2010
Beiträge: 62
PHP-Kenntnisse:
Fortgeschritten
Geryon befindet sich auf einem aufstrebenden Ast
Standard

vergessen is gut^^ das hab ich garnet gewusst^^
Geryon ist offline   Mit Zitat antworten
Alt 28.10.2010, 11:05  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Sorry aber ich steig da jetzt nicht durch, wen stört denn duplicate content und warum? Ich hab mehr im Intranet zu tun, deshalb hab ich mit Google & co. nichts am Hut, interessieren würde es mich aber trotzdem.
cycap ist offline   Mit Zitat antworten
Alt 28.10.2010, 11:17  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Sorry aber ich steig da jetzt nicht durch, wen stört denn duplicate content und warum?
das sagt google dazu

kurzfassung: google kann es dir ziemlich übel nehmen, wenn du den selben Inhalt auf mehreren Seiten anbietest. Schließlich könntest du dadurch öfter in den Suchergebnissen auftauchen.

Es lässt sich zwar nicht verhindern und ist oft genug gewollt (mobi-version, druckversion), allerdings sollte man darauf achten, dass google (und co.) nur eine davon unter die lupe nimmt
zwutz ist offline   Mit Zitat antworten
Alt 28.10.2010, 11:25  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ich finde es eine Frechheit das google sich rausnimmt Seiten als "auffällig ähnlich" anzusehen, aber danke für die Info.
cycap ist offline   Mit Zitat antworten
Alt 28.10.2010, 16:07  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Naja, wieso als Frechheit. Google ist kein staatlich finanzierter öffentlicher Dienst, sondern auch ein privates Unternehmen. Folglich darf es auch entschieden, nach welchen Kriterien Seiten bewertet werden. Die Duplicate Content Policy entstand wie ich vermute aus der Idee, dass man um Google vorzugauckeln, relevant zu sein, einfach fremden Content übernimmt oder eigenen Content einfach nur repliziert.

Dass auch angehängte Slashs bereits als verschiedene URLs gedeutet werden, sehe ich oft in den Webmastertools. Da sind dann oft Links zweimal aufgeführt. Einmal mit Slash (example.com/page1) und einmal mit Slash (example.com/page1/). Deshalb achte ich beim URL-Rewriting sehr genau darauf, einen Slash am Ende zu fordern, damit die Regel zutrifft. Am Anfang der .htaccess steht dann meist eine Regel, die dafür sorgt, dass alle URLs ohne Slash, die nicht zu einer physisch existierenden Datei führen oder eine Dateiendung beinhalten, zur Variante mit Slash weitergeleitet werden. Damit erreiche ich das Standardverhalten des Apache bei Aufruf eines Verzeichnisses ohne nachfolgenden Slash. Dieses wird auch zur Variante mit Slash weitergeleitet.

Zu den Canonical-URLs: das sollte in der Tat nicht vergessen werden. Aber bitte verwechsle
Code:
<link rel="canonical" href="http://example.com/mypage" />
nicht mit
Code:
<link rev="canonical" href="http://exam.pl.invalid/df235d6" />
Letzteres ist ein (semantisch nicht ganz korrekter) Verweis auf einen Short-URL für diese Seite und wird von Google nicht beachtet, jedenfalls nicht im Sinne der hier genannten Canonical-URLs.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems

Geändert von Manko10 (28.10.2010 um 16:11 Uhr).
Manko10 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Left Join 3 Tabellen mykosch Datenbanken 5 16.09.2010 14:51
[Erledigt] Commands out of Sync (mysqli) - wie code ich es sauber und ohne Fehler? marcial PHP Tipps 2010 18 09.09.2010 14:36
Sauber Programmieren MoneY PHP-Fortgeschrittene 9 22.05.2010 13:15
mkdir() mit suexec nicht sauber? Anotherone PHP-Fortgeschrittene 4 22.06.2007 13:35
Sauber formatierte Debug-Ausgabe PHP-Fortgeschrittene 7 30.12.2005 08:37
bild sauber tranparent machen PHP-Fortgeschrittene 9 03.01.2005 15:06
[Erledigt] color=&quot;#FF0000&quot; wird im Textfeld nicht sauber ange HTML, Usability und Barrierefreiheit 4 10.12.2004 13:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
canonical, sauber url dank htaccess, sauber url, google

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum