| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
ds

Anmeldedatum: 10.10.2006 Beiträge: 56 Wohnort: Berlin
|
Verfasst am: Mi Mai 06, 2009 6:39 pm Titel: url_rewrite: Kurzes URL-Schema (domain.tld/artikel/) |
|
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 |
|
 |
Phoenix H.
Anmeldedatum: 21.09.2006 Beiträge: 495
|
Verfasst am: Mo Jul 20, 2009 8:15 am Titel: |
|
Danke - funktioniert super.
Was auch schön wäre, ist eine Kategorisierte URL.
domain.de/leistungen/scheibenwischen/
Geht das damit? |
|
| Nach oben |
|
 |
ds

Anmeldedatum: 10.10.2006 Beiträge: 56 Wohnort: Berlin
|
Verfasst am: Mi Aug 12, 2009 11:14 am Titel: |
|
| 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 |
|
 |
Phoenix H.
Anmeldedatum: 21.09.2006 Beiträge: 495
|
Verfasst am: Mi Aug 12, 2009 11:24 am Titel: |
|
Ich sag jetzt schon einmal danke ohne es ausprobiert zu haben
Werde ich kommende Tage nachholen.
Gebe dir dann Feedback. |
|
| Nach oben |
|
 |
rsi

Anmeldedatum: 05.12.2007 Beiträge: 316 Wohnort: Hamburch
|
Verfasst am: Fr Sep 04, 2009 12:09 pm Titel: |
|
Das funktioniert hervorragend und erfüllt seinen Zweck. Vielen Dank für diese Überarbeitung.
Gruß
Ralf _________________ -
Ich signiere nur noch Fanpostkarten |
|
| Nach oben |
|
 |
fgrote
Anmeldedatum: 12.12.2007 Beiträge: 21
|
Verfasst am: Mo Sep 21, 2009 10:31 am Titel: |
|
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 |
|
 |
ds

Anmeldedatum: 10.10.2006 Beiträge: 56 Wohnort: Berlin
|
Verfasst am: Mo Sep 21, 2009 2:30 pm Titel: |
|
| 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 |
|
 |
fgrote
Anmeldedatum: 12.12.2007 Beiträge: 21
|
Verfasst am: Di Sep 22, 2009 11:29 pm Titel: |
|
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 |
|
 |
ds

Anmeldedatum: 10.10.2006 Beiträge: 56 Wohnort: Berlin
|
Verfasst am: Mi Sep 23, 2009 7:38 am Titel: |
|
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 |
|
 |
fgrote
Anmeldedatum: 12.12.2007 Beiträge: 21
|
Verfasst am: Mo Sep 28, 2009 11:24 pm Titel: |
|
Soo jetzt funktioniert das auch! 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 |
|
 |
bastians

Anmeldedatum: 09.05.2008 Beiträge: 102 Wohnort: Stuttgart
|
Verfasst am: Do Dez 17, 2009 8:21 pm Titel: |
|
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 |
|
 |
Sabse
Anmeldedatum: 01.04.2008 Beiträge: 77 Wohnort: Wörth am Rhein
|
Verfasst am: Do Dez 17, 2009 9:11 pm Titel: |
|
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 |
|
 |
ds

Anmeldedatum: 10.10.2006 Beiträge: 56 Wohnort: Berlin
|
Verfasst am: Mi Jan 13, 2010 2:45 pm Titel: |
|
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 |
|
 |
Phoenix H.
Anmeldedatum: 21.09.2006 Beiträge: 495
|
Verfasst am: Mi Jan 13, 2010 2:48 pm Titel: |
|
Feine Arbeit Dirk  |
|
| Nach oben |
|
 |
Sabse
Anmeldedatum: 01.04.2008 Beiträge: 77 Wohnort: Wörth am Rhein
|
Verfasst am: Mi Jan 13, 2010 3:11 pm Titel: |
|
| 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 |
|
 |
|