Samstag, 26. Mai 2012, 05:12

Du bist nicht angemeldet.



lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

1

Freitag, 30. Dezember 2011, 11:52

Wordpress - url.rewrite verstehen?

In der MU-Variante von Wordpress können verschiedene Sites parallel angelegt und verwaltet werden. Bei mir liegen die Blogs alle im Unterverzeichnis /blog/

z.B.
www.hobbitonhill.de/blog/apfelblog
www.hobbitonhill.de/blog/birnenblog
www.hobbitonhill.de/blog/pflaumenblog

Die Unterzeichnisse /apfelblog /birnenblog usw. gibt es nicht physisch, sondern nur virtuell, da die Informationen aller Blogs zentral in einer Datenbabk abgespeichert sind.

Die URL eines Blogs wird nun per url.rewrite wie folgt aufgelöst (ich nutze lighttpd als Webserver):

Quellcode

1
2
3
4
5
6
7
8
9
10
$HTTP["host"] =~ "^www.hobbitonhill.de$" {
	url.rewrite-once = (
    	"^/blog/(.*/)?files/(.+)$" => "/blog/wp-includes/ms-files.php?file=$2",
    	"^/blog/(.*/)?(wp-(content|admin|includes).*)$" => "/blog/$2",
    	"^/blog/([_0-9a-zA-Z-]+/)?(.*\.php)$" => "/blog/$2",
    	"^/blog/([_0-9a-zA-Z-]+/)?(.*\.php/.*)$" => "/blog/$2",
    	"^/blog/([_0-9a-zA-Z-]+/?)?$" => "/blog/index.php",
    	"^/blog/([_0-9a-zA-Z-]+/)?(.*)$" => "/blog/$2"
	)
}


Das funktioniert auch. Alle Blogs und ihre Seiten werden über die o.g. spezifischen URLs erreicht. Ich verstehe nur nicht, warum das so funktionieren kann.

Beispiel:

Angenommen ich tippe im Browser dieses ein, um eine spezielle Seite im "Apfelblog" zu erreichen:

Zitat

http://www.hobbitonhill.de/blog/apfelblog/?page_id=20
Dann übersetzt der Webserver das doch erst einmal mit der untersten Regel intern in:

Zitat

http://www.hobbitonhill.de/blog/page_id=20
Mit dieser Information geht er jetzt in das Dateisystem. Aber woher weiß Wordpress jetzt noch, dass es um den Apfelblog gehen soll, denn diese Information wurde ja eleminiert?

Das würde ich gerne verstehen.
ubuntufreund No. 30
think globally, act locally

Bolle

ist fest eingezogen.

Beiträge: 455

Ubuntu: 12.04

Desktop: ---

Architektur: 32-bit

Danksagungen: 0 / 1

  • Private Nachricht senden

2

Samstag, 31. Dezember 2011, 00:46

Ich denke mal Wordpress merkt sich welche "User" (Blog) den Eintrag verfaßt hat und leitet ensprechend weiter - Wordpress leitet ja auch automatisch zu der im Admin Bereich angegebenen Blog Url weiter ohne das überhaupt eine .htaccess existiert

lacarpe

ist fest eingezogen.

  • »lacarpe« ist der Autor dieses Themas

Beiträge: 509

Ubuntu: ---

Kernel: 2.6.32 (Debian Squeeze)

Desktop: Xfce

Architektur: 64-bit

  • Private Nachricht senden

3

Samstag, 31. Dezember 2011, 12:30

Hi Bolle,
das kann es eigentlich nicht sein. Ein User kann verschiedene Blogs erstellt haben. Auch ist page_id=20 nicht eindeutig, denn es gibt dieselbe Page-Id in mehreren Blogs
ubuntufreund No. 30
think globally, act locally

Bolle

ist fest eingezogen.

Beiträge: 455

Ubuntu: 12.04

Desktop: ---

Architektur: 32-bit

Danksagungen: 0 / 1

  • Private Nachricht senden

4

Samstag, 31. Dezember 2011, 13:10

Ich bin mir nun nicht wirklich sicher aber ich meine das der Aufruf über die PageIDs nicht immer funktionierte. Es gab mal eine Funktion im Adminbvereich da konnte man festlegen ob WP sich Änderungen der Urls merken soll..Ich finde sie nur nicht mehr, kann auch sein das die seit einem Update Standard ist....

Da könnte man sich auch fargen: Woher weiß bzw wo hinterlegt WP die Url Änderungen.....

Aber ich meine wenn man die damals nicht aktiviert hatte dann bekam man wenn man clean Urls verwendete bei Aufruf der Page Ids nur 404Error.
Das ist nun alles anders weil die Page ID nun als Kurz Url Dient (praktisch für Twitter o.Ä)