Hallo,
wir möchten unsere statische Seite http://regenbogenbruecke.de/index.php?page_id=11 so einrichten, dass sie (zusätzlich) unter der URL http://regenbogenbruecke.de/shop.php erscheint.
Erster Versuch: eine kleine PHP-Datei, die per filegetcontents() den Inhalt von http://regenbogenbruecke.de/index.php?page_id=11 ausliest und als ihren eigenen Inhalt ausgibt. Das scheitert leider daran, dass mit dieser Methode keine Cookies durchgereicht werden (und ggf. auch andere Informationen nicht), d.h. Wordpress weiß dann nichts von einem evtl. bestehenden Administrator-Login :-(.
Zweiter Anlauf: mod_rewrite.
Nur: es funktioniert leider nicht. Externe Redirects kriege ich mit Regeln wie
ZitatRewriteRule ^shop\.php$ index.php?page_id=11 [R,QSA]
oder
ZitatRewriteRule ^shop\.php$ http://regenbogenbruecke.de/index.php?page_id=11 [QSA]
problemlos hin, aber sobald ich von ihm verlange, den Redirect intern auszuführen - also mit
ZitatRewriteRule ^shop\.php$ index.php?page_id=11 [QSA]
krieg ich einen 404.
Ich hab schon mit RewriteLogLevel 3 mitprotokollieren lassen:
ZitatAlles anzeigenInitial request:
(3) [per-dir /htdocs/] strip per-dir prefix: /htdocs/shop.php -> shop.php
(3) [per-dir /htdocs/] applying pattern '^\.?$' to uri 'shop.php'
(3) [per-dir /htdocs/] strip per-dir prefix: /htdocs/shop.php -> shop.php
(3) [per-dir /htdocs/] applying pattern '^shop\.php$' to uri 'shop.php'
(2) [per-dir /htdocs/] rewrite shop.php -> index.php?page_id=11
(3) split uri=index.php?page_id=11 -> uri=index.php, args=page_id=11
(3) [per-dir /htdocs/] add per-dir prefix: index.php -> /htdocs/index.php
(2) [per-dir /htdocs/] trying to replace prefix /htdocs/ with /
(1) [per-dir /htdocs/] internal redirect with /index.php [INTERNAL REDIRECT]
Redirected request:
(3) [per-dir /htdocs/] strip per-dir prefix: /htdocs/index.php -> index.php
(3) [per-dir /htdocs/] applying pattern '^\.?$' to uri 'index.php'
(3) [per-dir /htdocs/] strip per-dir prefix: /htdocs/index.php -> index.php
(3) [per-dir /htdocs/] applying pattern '^shop\.php$' to uri 'index.php'
(1) [per-dir /htdocs/] pass through /htdocs/index.php
Das Kuriose ist, dass die URL richtig erkannt wird, es wird auch die richtige Ersatz-URL angefordert, aber es kommt trotzdem ein 404 heraus.
Und noch Kurioser ist, dass die gewünschte Seite herauskommt, wenn ich die Ziel-URL (http://regenbogenbruecke.de/index.php?page_id=11) direkt im Browser eingebe.
Klingt eigentlich nach irgend einem dämlich offensichtlichen Fehler, aber ich komm nicht drauf.
Wer kann helfen?