![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Ihr kennt ja solche URLs wie z.b. bei Wordpress domain.com/news/2006/01/01/news-thema Für die News auf meiner Page möchte ich das auch so machen mit .htaccess allerdings ist da nun ein Problem aufgetreten früher ging es so news.php?id=1 ich kann es lediglich so ändern domain.com/news/1 Jetzt ist es aber so das in den optimierten URLs die NewsID nicht mehr drin ist sodass ich die passenden News nicht mehr selektieren kann. Wie könnte man das lösen? Eine Idee ist mir gekommen das man neben dem News Titel noch eine Spalte "seo Titel" macht wo dann der Suchmaschinen optimierte Titel drinsteht. Anhand dessen kann man wie bei einem Primärschlüssel selektieren. Oder gibt es noch andere Möglichkeiten die richtigen News zu selektieren ohne die ID mitzuliefern? |
| | |
| | Nach oben #2 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
|
wo ist das problem ID und titel in der leiste zu haben ? mein blog arbeitet so allerdings mache ich das php-seitig, sprich htaccess leitet alle anfragen an mein php-system weiter und das nimmt die aufgerufene URL auseinander. ausserdem stehen dir ja in der htaccess auch reguläre ausdrücke zur verfügung, also auch dort kannst du die id aus der zeichenkette rausbekommen, ich versteh dein problem nicht, ausserdem warum muss es denn news.php?id=1 sein ? es ginge doch auch: news.php?id=name-der-news wobei man hier halt auf richtiges encoden und decoden achten muss! mfg robo47 |
| | |
| | Nach oben #3 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Na ja ich wollte die ID halt nich in der Zeile drin haben ganz einfach. Es geht doch darum das ich in der optimierten URL einen Wert haben muss der es ermöglicht über die php Seite die richtigen News aus der DB zu selektieren. Derzeit läuft das bei mir über news.php?id=1 Ich gehe mal davon aus das ohne ID in der Adresse zu machen. Wenn ich nun den Newstitel als Schlüssel benutze muss ich doch den News Titel manipulieren, einen Link draus machen wo jemand draufklickt. (Sonderzeichen raus, Leerzeichen zu Binderstriche, etc.) <a href="news/meine-news-von-heute"> Aber ich kann doch aus dieser URL nicht den Originaltitel wiederherstellen und dann den korrekten Newseintrag selektieren. Ich müsste doch den optimierten Newstitel zusammen mit dem richtigen Titel speichern. Das alles an ein PHP System weiterzuleiten fände ich auch besser. Wie läuft das denn bei dir ähnlich wie bei dem Dr. Web Tutorial? Geändert von ex³ (04.07.2006 um 10:05 Uhr). |
| | |
| | Nach oben #4 | |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.203
| Zitat:
danke.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! | |
| | |
| | Nach oben #5 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.471
|
Du speicherst die URLs in einer Datenbank, liest dann die entsprechende urlID aus, welche einem bestimmten Datensatz der Tabelle news zugeordnet ist. Somit kannst du mit einer URL ohne ID eine gewisse Nachricht auslesen. Meinst du sowas? |
| | |
| | Nach oben #6 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Hatte mich auch auf die Suche nach dem Dr. Web Tutorial begeben aber ich finde es irgendwie grade nicht. Die haben mit .htaccess alles auf eine File geleitet und dann eine $_SERVER Variable ausgelesen und mit explode zerlegt dann kann man den Rest inlcuden. Ah ja hier ist es http://www.drweb.de/suchmaschinen/su...nen-urls.shtml @Ben Ja so ungefähr ich hab ne Tabelle und da steht dann sowas drin newstitel "Meine News von Heute!" newstitelopt "meine-news-von-heute" Der optimierte newstitel ist dann der Schlüssel zum selektieren. Was meines Meinung nicht grade ne tolle Methode ist. |
| | |
| | Nach oben #7 | |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.203
| Zitat:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! | |
| | |
| | Nach oben #8 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.471
| Zitat:
Deine Entscheidung! Btw. deine URL-Tabelle braucht eine ID, damit du diese dann in der Tabelle "news" (oder so) verwenden kannst. Die Spalte "newstitle" gehört nicht in die Tabelle. Beschäftige dich mal mit Normalisierung! Grüße, Ben. | |
| | |
| | Nach oben #9 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Keine Ahnung was du mit URL Tabelle meinst. Ich habe eine News tabelle in denen die beiden Newstitel drinstehen mehr nicht. Ich würde nur die optimierten Titel speichern und keine kompletten URLs. Datenbanken nicht so deine Stärke, wie? |
| | |
| | Nach oben #10 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
|
Betreffs PM von ex3: Zitat:
ich geh jetzt einfach mal von meinem system unter www.robo47.net aus, das system ist im groben so aufgebaut, dass ich ein modul habe: blog und seine urls, die setzen sich aus id und seo-optimiertem namen zusammen: www.robo47.net/module/seo-optimierter-name der blog unterscheidet sich hier, weil es durchaus passieren kann, dass gleiche seo-optimierte namen irgendwann vorkommen, wird hier zusätlich mit einer ID gearbeitet http://www.robo47.net/blog/eintragid...timierter-name beim aufruf z.b. dieser url: http://www.robo47.net/blog/34-14-days-remaining#top geht mein system so vor: die .htaccess leitet alle anfragen bis auf ein paar ausnahmen direkt an die index.php weiter: Code: RewriteEngine on Options +FollowSymlinks RewriteRule !(favicon.ico|robots.txt|info.php) index.php [L] Errordocument 404 /index.php?a=404 PHP-Code: preg_match_all('~^([0-9]+)\-.*?$~',$GLOBALS['queryarray'][1],$matches); als erstes schauen ob eine id gefolgt von was anderem vorhanden ist (seo-optimierter-name) dan wird in der datenbank der zur ID passenden eintrag abgeholt, wenn er nicht existiert wird ein 404 ausgegeben mit info, dass der eintrag nicht oder nicht mehr existiert, wenn die ID existiert, wird überprüft pb der seo-optimierte name stimmt, stimmt dieser nicht, wird mittels header 301 auf die richtige url weitergeleitet, so verhindert man, dass suchmaschinen doppelte urls finden, weil sich jemand beim verlinken vertippt hat oder ähnliches UND ich kann jederzeit nachträglich die seo-url selbst verändern ohne dass es zu einem 404 kommt. beispielcode fürs weiterleiten: PHP-Code: jow denke damit hab ich gaanz grob erklärt wie ich das bei mir realisiert habe, wenn noch fragen sind, als her damit. Die Ids stören in den URLs ja nicht und so kann man trotzdem seine URLS optimieren und hat den vorteil topics ändern zu können, ohne dass eben seiten nicht mehr auffindbar sind, die 301 wirken hier sehr gut auf suchmaschinen, weil sie dann im normalfall die alte seite aus dem index kicken und die neue aufnehmen, wenn sie auf so einen link stoßen. //Edit jow die seo-urls erstellt mein system quasi von selbst, die funktion ist noch nicht ausgereift und vor allem nicht wirklic htauglich für alle sonderzeichen, aber da mein system step-by-step erweitert wird kann ich damit leben. die funktion wird irgendwann wohl einfach ein array enthalten mit allen entsetzungen, der code ist also bis jetzt noch eher quälcode der noch zu optimieren ist, aber einfach im einsatz bei mir erweitert und verbessert wird, klammern sind eigentlich noch auf der liste dessen was ersetzte werden sollte und im endeffekt werde ich wohl dann auch noch mehrfache - durch einen einzelnen ersetzen lassen, was ja dank der 301-funktion zu keinem problem führt, weil user genauso wie suchmaschinen immer zum richtigen eintrag weitergeleitet werden. als $string übergebe ich immer den von mir für einen blogeintrag erstellten titel ein. PHP-Code: robo47 Geändert von robo47 (04.07.2006 um 13:51 Uhr). | |
| | |
| | Nach oben #12 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
|
da ich seit ich hier codebrocken gepostet habe aufrufe alla: http://www. robo47 .net/?queryarray=23 http://www. robo47 .net/?include=blog/1.html http://www. robo47 .net/?queryarray[0]=blog&queryarray[1]=5 und soweiter habe -> register_globals ist bei mir off und ich include auch nix statisches /edit habs mal entlinkt, weil da irgendwie jeder der das hier gelesen hat wohl draufgeklickt hat mfg robo47 Geändert von robo47 (05.07.2006 um 13:57 Uhr). |
| | |
| | Nach oben #14 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.471
|
Hi, so ganz habe ich nicht verstanden, wie du das realisierst. Zitat:
Wenn du nun aber einen Titel à la "Die finale Version von PHP 5.2.0 ist veröffentlicht" hast, würde ja z.B. in der Adresszeile folgende URI stehen "34,die-finale-version-von-php-5.2.0-ist-veroeffentlicht" Jut, wie prüfst du denn jetzt, ob der Titel zur ID passt? Hast du den Titel persistent abgespeichert oder wie? Weil die Funktion validateHeadline() umzukehren dürfte nicht so einfach möglich sein. Danke für die Erläuterung. Grüße, Ben. | |
| | |
| | Nach oben #15 | ||
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
| Zitat:
mfg robo47 | ||
| | |
| | Nach oben #17 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Meine Zeit gebietet es mir leider nicht, die letzten 5 Beiträge komplett zu lesen, daher einfach mal so die Frage in den Raum geworfen: Was haltet ihr von der Alternative, die ID als SubDomain zu übergeben? Sprich anstatt http://www.domain.de/news/1/News_Titel halt http://1.domain.de/news/News_Titel ? Technisch ist das machbar, fraglich ist halt nur, ob jemand auf diese Art der Formatierung steht!?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #18 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
|
sobald ich irgendwas als subdomain habe, gehört rein suchmaschinentechnisch der kram zu ner komplett anderen domain, das gleiche gilt ja dann auch für cookies, die erlaubnis von noscript ob man js aktiviert hat ..... wäre meiner meinung nach fatal. mfg robo47 |
| | |
| | Nach oben #19 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Hmm... OK, dazu kenne ich mich zu wenig mit Suchmaschinenarbeitsweisen aus, aber Cookies kannst du für domain.de setzen und meines Wissens nach arbeiten die dann auch für a.domain.de, b.domain.de, etc.!? Oder irre ich mich da? *kratzamkopf*
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #20 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
| Zitat:
wenn ich einer domain cookies erlaube zu setzen gilt das auch wieder nur für die domain, nicht für die subdomain. mfg robo47 | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zend Framework - Probleme mit Zend_Controller_RewriteRouter bzw. Form der URLs | Ben | PEAR, PECL und Frameworks | 12 | 24.12.2006 17:17 |
| Seite statisch vorerstellen für bessere URLs | ex³ | PHP-Programmierung | 12 | 18.01.2006 11:21 |