Forum

url_rewrite: Kurzes URL-Schema (domain.tld/artikel/)


Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    REDAXO Forum Foren-Übersicht -> AddOns [R4]
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ds



Anmeldedatum: 10.10.2006
Beiträge: 56
Wohnort: Berlin

BeitragVerfasst am: Mi Mai 06, 2009 6:39 pm
Titel: url_rewrite: Kurzes URL-Schema (domain.tld/artikel/)
Antworten mit Zitat
Hallo,

kurze URLs nach dem Schema domain.tld/artikel/ lassen sich mit wenigen Handgriffen an der fullnames-Klasse des url_rewrite-Addons umsetzen, siehe http://blog.decaf.de/2009/05/kurze-urls-redaxo-cms/.

(Natürlich beachten: Die Verwendung dieses Schemas ist nur dann sinnvoll, wenn sicher gestellt werden kann, dass keine zwei gleichlautenden Artikel oder Kategorien existieren, die beim Rewrite die gleiche URL ergäben!)

Update 18.01.2010:
1. Bei Mehrsprachigkeit:
a) Alle Startartikel erhalten Sprachkürzel-URL (Bsp.: domain.tld/de/ statt domain.tld/de/startseite/)
b) Der Startartikel der Hauptsprache ($REX['START_CLANG_ID']) erhält Basis-URL OHNE Sprachkürzel (Bsp.: domain.tld statt domain.tld/de/).
2. Bugfix: $REX['NOTFOUND_ARTICLE_ID'] kam immer in clang 0. (Betrifft die fullnames-Klasse allgemein, nicht nur diese Erweiterung)

Viele Grüße!
_Dirk


Zuletzt bearbeitet von ds am Do März 11, 2010 11:00 pm, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Phoenix H.



Anmeldedatum: 21.09.2006
Beiträge: 495

BeitragVerfasst am: Mo Jul 20, 2009 8:15 am
Titel:
Antworten mit Zitat
Danke - funktioniert super.
Was auch schön wäre, ist eine Kategorisierte URL.

domain.de/leistungen/scheibenwischen/

Geht das damit?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
ds



Anmeldedatum: 10.10.2006
Beiträge: 56
Wohnort: Berlin

BeitragVerfasst am: Mi Aug 12, 2009 11:14 am
Titel:
Antworten mit Zitat
breastfed hat Folgendes geschrieben:
Danke - funktioniert super.
Was auch schön wäre, ist eine Kategorisierte URL.

domain.de/leistungen/scheibenwischen/

Geht das damit?

Entschuldige, ich hatte verpasst, zu antworten.

Kategorisierte URL ist auch kein Problem. Dort, wo der Pfad zusammengebaut wird, muss der Code lediglich so angepasst werden, dass nur die erste Verzeichnisebene, die der gewünschten Kategorie entspricht, verwendet wird.

Folgenden Bereich (Zeile 292 ff.) aus der verlinkten fullnames-Klasse des url_rewrite-Addons..

Code:
      // pfad über kategorien bauen
      /* deaktiviert für onelevel:
      $path = trim($db->getValue('path'), '|');
      if($path != '')
      {
        $path = explode('|', $path);
        foreach ($path as $p)
        {
          $ooc = OOCategory::getCategoryById($p, $clang);
          $name = $ooc->getName();
          unset($ooc); // speicher freigeben
         
          $pathname = rex_rewriter_appendToPath($pathname, $name);
        }
      }
      */

..ändern zu folgendem:

Code:
      // pfad über kategorien bauen
      $path = trim($db->getValue('path'), '|');
      if($path != '')
      {
        $path = explode('|', $path);

        $ooc = OOCategory::getCategoryById($path[0], $clang);
        $name = $ooc->getName();
        unset($ooc); // speicher freigeben
         
        $pathname = rex_rewriter_appendToPath($pathname, $name);
      }

Viele Grüße!
_Dirk
_________________
DECAF | Blog | Twitter @DECAFmedia
Aktuelles REDAXO-Projekt: SEED WARRIORS
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Phoenix H.



Anmeldedatum: 21.09.2006
Beiträge: 495

BeitragVerfasst am: Mi Aug 12, 2009 11:24 am
Titel:
Antworten mit Zitat
Ich sag jetzt schon einmal danke ohne es ausprobiert zu haben Wink

Werde ich kommende Tage nachholen.

Wink

Gebe dir dann Feedback.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
rsi



Anmeldedatum: 05.12.2007
Beiträge: 316
Wohnort: Hamburch

BeitragVerfasst am: Fr Sep 04, 2009 12:09 pm
Titel:
Antworten mit Zitat
Das funktioniert hervorragend und erfüllt seinen Zweck. Vielen Dank für diese Überarbeitung.

Gruß
Ralf
_________________
-
Ich signiere nur noch Fanpostkarten
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
fgrote



Anmeldedatum: 12.12.2007
Beiträge: 21

BeitragVerfasst am: Mo Sep 21, 2009 10:31 am
Titel:
Antworten mit Zitat
Hallo,

ich habe das Problem das ich die kurzen URLs nicht zum laufen bekomme. Hab alles so gemacht wie in der Beschreibung steht.

Habe im Rex 4.2.1 das $REX['MOD_REWRITE'] auf TRUE gesetzt und auch auf dem Server ist das MOD_REWRITE auf ON.

In der Browser Adresszeile steht zwar www.meinedomain.de/kontakt aber er kann die Seite nicht finden:

404 Not Found

The requested URL /kontakt/ was not found on this server.
Apache Server at www.meinedomain.de Port 80

Hat da einer einen Tip

LG
Florian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ds



Anmeldedatum: 10.10.2006
Beiträge: 56
Wohnort: Berlin

BeitragVerfasst am: Mo Sep 21, 2009 2:30 pm
Titel:
Antworten mit Zitat
Zitat:
ich habe das Problem das ich die kurzen URLs nicht zum laufen bekomme. Hab alles so gemacht wie in der Beschreibung steht.

Danke für den (indirekten) Hinweis: Ich habe in der Beschreibung und auch in der angepassten Rewriter-Klasse vergessen die Infos bzgl. der htaccess mit aufzunehmen.

Hier der Auszug aus der originalen Rewriter-Klasse:

Code:
/**
 * URL Fullnames Rewrite Anleitung:
 *
 *   1) .htaccess file in das root verzeichnis:
 *     RewriteEngine On
 *     #RewriteCond %{HTTP_HOST} ^domain.tld [NC]
 *     #RewriteRule ^(.*)$ http://www.domain.tld/$1 [L,R=301]
 *     #RewriteBase /
 *     RewriteCond %{REQUEST_FILENAME} !-f
 *     RewriteCond %{REQUEST_FILENAME} !-d
 *     RewriteCond %{REQUEST_FILENAME} !-l
 *     RewriteCond %{REQUEST_URI} !^redaxo/.*
 *     RewriteCond %{REQUEST_URI} !^files/.*
 *     RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
 *
 *   2) .htaccess file in das redaxo/ verzeichnis:
 *     RewriteEngine Off
 *
 *   3) im Template folgende Zeile AM ANFANG des <head> erg‰nzen:
 *   <base href="http://www.meine_domain.de/pfad/zum/frontend" />
 *
 *   4) Specials->Regenerate All starten

Schau doch mal, ob Du deine htaccess angepasst hattest (entsprechend Punkt 1). Und auch, ob Du ein base href im Template angegeben hast (Punkt 3).

Sollte es danach immer noch nicht funktionieren, melde Dich bitte hier nochmal.

Viele Grüße!
_Dirk
_________________
DECAF | Blog | Twitter @DECAFmedia
Aktuelles REDAXO-Projekt: SEED WARRIORS
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fgrote



Anmeldedatum: 12.12.2007
Beiträge: 21

BeitragVerfasst am: Di Sep 22, 2009 11:29 pm
Titel:
Antworten mit Zitat
Hi,

also meine htaccess schaut so aus wie soll die jetzt aussehen? Wie sieht die Datei bei Punkt zwei aus?


Code:
RewriteEngine On
### In case ModRewrite doesnt work remove following comment and try again
# RewriteBase /
RewriteRule ^([0-9]*)-([0-9]*)- index.php?article_id=$1&clang=$2&%{QUERY_STRING}
RewriteRule ^([0-9]*)- index.php?article_id=$1&%{QUERY_STRING}

### In case you want to secure all files via your own addon remove comment
# RewriteRule ^files/(.*) /index.php?rex_media=$1&%{QUERY_STRING} [NC]

### Remove Comments when you user Fullname "url_rewrite" AddOn
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-l
#RewriteCond %{REQUEST_URI} !^redaxo/.*
#RewriteCond %{REQUEST_URI} !^files/.*
#RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]


Besten Dank
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ds



Anmeldedatum: 10.10.2006
Beiträge: 56
Wohnort: Berlin

BeitragVerfasst am: Mi Sep 23, 2009 7:38 am
Titel:
Antworten mit Zitat
fgrote, in Deiner htaccess ist der wichtige Teil noch auskommentiert. Du musst die # am Anfang entfernen:
Code:
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-l
#RewriteCond %{REQUEST_URI} !^redaxo/.*
#RewriteCond %{REQUEST_URI} !^files/.*
#RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

Viele Grüße!
_Dirk
_________________
DECAF | Blog | Twitter @DECAFmedia
Aktuelles REDAXO-Projekt: SEED WARRIORS
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
fgrote



Anmeldedatum: 12.12.2007
Beiträge: 21

BeitragVerfasst am: Mo Sep 28, 2009 11:24 pm
Titel:
Antworten mit Zitat
Soo jetzt funktioniert das auch! Wink Ich Blödi hatte das base-href mit zwei unterschiedlichen Namen drin und dann auch noch an unterschiedlichen Stellen. Warum kein Plan aber jetzt funktioniert das ganz toll!

Danke und Gruß
Florian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
bastians



Anmeldedatum: 09.05.2008
Beiträge: 102
Wohnort: Stuttgart

BeitragVerfasst am: Do Dez 17, 2009 8:21 pm
Titel:
Antworten mit Zitat
Hallo,

tolle Lösung, vielen Dank dafür. Sollte man als Option in das Addon aufnehmen sowie auf einer Wiki-Seite erklären. Was meint ihr? Oder gibt es schon eine Seite im Wiki? Ich habe leider nichts gefunden.
_________________
Grüße, Bastian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen ICQ-Nummer
Sabse



Anmeldedatum: 01.04.2008
Beiträge: 77
Wohnort: Wörth am Rhein

BeitragVerfasst am: Do Dez 17, 2009 9:11 pm
Titel:
Antworten mit Zitat
Die beiden hier vorgestellten Varianten sind für umfangreiche Seiten, wo sich Namensgleichheiten nicht vermeiden lassen, leider nicht geeignet.

Wäre es mit url_rewrite auch zu realisieren, dass der Pfad zum Startartikel einfach nur den Kategorienamen enthält und ansonsten alles so ist, wie bei der Standardvariante?

Also so:

http://www.domain.com/kategorie/

und nicht so:

http://www.domain.com/kategorie/startartikel.html

und auch nicht so:

http://www.domain.com/startartikel.html


Es müssten also immer alle Kategorieebenen im Link enthalten sein, und ein Artikelname sollte nur dann angehängt werden, wenn die Kategorie mehr als einen Artikel enthält.

Ist das möglich?


Gruß, Sabrina
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ds



Anmeldedatum: 10.10.2006
Beiträge: 56
Wohnort: Berlin

BeitragVerfasst am: Mi Jan 13, 2010 2:45 pm
Titel:
Antworten mit Zitat
Hallo Sabse,

irgendwie ist Dein Post untergegangen, sorry.
Wenn ich Dich richtig verstehe, willst Du also solche URLs:

Code:
domain.tld/kategorie/subkategorie/seite/

Das erreichst Du, indem Du ../url_rewrite/classes/class.rewrite_fullnames.inc.php modifizierst:

1. Kommentiere die Zeilen 318-324 aus
Code:
/*
      if($ooa->isStartArticle())
      {
        $ooc = $ooa->getCategory();
        $catname = $ooc->getName();
        unset($ooc); // speicher freigeben
        $pathname = rex_rewriter_appendToPath($pathname, $catname);
      }
*/

2. Ändere Zeile 331 von
Code:
$pathname = substr($pathname,0,strlen($pathname)-1).'.html';
in
Code:
$pathname = substr($pathname,0,strlen($pathname)-1).'/';

Cache löschen in REDAXO > System nicht vergessen!

Viele Grüße
_Dirk
_________________
DECAF | Blog | Twitter @DECAFmedia
Aktuelles REDAXO-Projekt: SEED WARRIORS
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Phoenix H.



Anmeldedatum: 21.09.2006
Beiträge: 495

BeitragVerfasst am: Mi Jan 13, 2010 2:48 pm
Titel:
Antworten mit Zitat
Feine Arbeit Dirk Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden ICQ-Nummer
Sabse



Anmeldedatum: 01.04.2008
Beiträge: 77
Wohnort: Wörth am Rhein

BeitragVerfasst am: Mi Jan 13, 2010 3:11 pm
Titel:
Antworten mit Zitat
ds hat Folgendes geschrieben:
Hallo Sabse,

irgendwie ist Dein Post untergegangen, sorry.
Wenn ich Dich richtig verstehe, willst Du also solche URLs:

Code:
domain.tld/kategorie/subkategorie/seite/



Das geht noch weiter, als wie ich es mir vorgestellt hatte, mir ging es nur darum, dass der Startartikel ohne .html erreichbar wird, jetzt steht nirgendwo mehr was von .html.

Aber so ist es auch gut, vielen Dank!

Diese ganzen Varianten sollten mit in den url_rewrite Download gepackt werden, und um es Anfängerfreundlicher zu machen, im Backend auswählbar sein.

Gruß, Sabrina.
[/quote]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    REDAXO Forum Foren-Übersicht -> AddOns [R4] Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group, Deutsche Übersetzung von phpBB.de