Zur Navigation

weiterleitung und Anzeige der url im Browser

1 uwe

Hallo,
beim Aufruf der Seite belegungsplan.html
soll zu einer anderen Seite weitergeleitet werden,

das geht kein Problem

Redirect permanent belegungsplan.html http://www.ferien-europa.de/fe/be/GetPage?page=111


Jetzt die kleine Baustelle:

Es soll im Browser auch die Seite Belegungsplan.html gezeigt werden. Hier wird immer die Original-Adresse gezeigt.

Welchen Fehler mache ich?

RewriteEngine on
RewriteRule ^belegungsplan.html http://www.ferien-europa.de/fe/be/GetPage?page=111


So ist jetzt mein kompletter Code:
Redirect permanent belegungsplan.html http://www.ferien-europa.de/fe/be/GetPage?page=111
RewriteEngine on
RewriteRule ^belegungsplan.html http://www.ferien-europa.de/fe/be/GetPage?page=111

17.05.2007 13:36

2 Jörg Kruse

Hallo uwe,

eine Weiterleitung von einer URL zu einer anderen URL impliziert, dass sich die URL ändert. Aber du möchtest ja eigentlich auch etwas anderes: dass der Inhalt einer URL unter einer anderen URL angezeigt wird. In diesem Zusammenha spricht man auch von URL-Rewitring. Mit dem von dir genannten Rewrite-Code sollte dieses Umschreiben der URL auch zu realisieren sein, wenn du nur den Pfad angibst:

RewriteEngine on

RewriteBase /

RewriteRule ^belegungsplan.html fe/be/GetPage?page=111

Voraussetzung ist dabei allerdings, dass die Domain dieselbe bleibt.

Ansonsten musst du nur noch die Weiterleitung weglassen, denn diese leitet ja auf die nicht gewünschte URL

17.05.2007 13:53 | geändert: 17.05.2007 13:54

3 uwe (Gast)

Hallo,
danke für den Lösungsansatz.

Meine Testseite ist
www.oberluebbe.de

Dort habe ich ein Button Belegungsplan der "scheinbar" auf
belegungsplan.html leiten soll. Aber im Hintergrund wird
http://www.ferien-europa.de/fe/be/GetPage?page=111
aufgerufen.

Base ist also nur für diesen Link verschoben.

Mit meinem access modul:
RewriteEngine on
RewriteBase http://www.ferien-europa.de
RewriteRule ^belegungsplan.html /fe/be/GetPage?page=111

geht es noch nicht.

Gruss

Uwe

17.05.2007 15:19

4 Jörg Kruse

Zur Zeit zeigt die Seite einen Internal Server Error an.

Der Pfad in RewriteBase bezieht sich auf das Dateisystem des Servers, die Angabe einer URL ist hier nicht sinnvoll - womöglich wird dadurch auch der Error 500 verursacht. Ein Rewriten von URLs funktioniert nur bei Inhalten, die auf demselben Server liegen

Wenn du eine Seite auf einem anderen Server unter der URL deiner Domain einbinden möchtest, könntest du diese alternativ in ein Frameset laden

Eine etwas aufwendigere Lösung wäre es, wenn ein PHP-Script sich die Seite mit fopen() oder file() holt (falls die Konfiguration dies zulässt) und den Inhalt dann ausgibt

(bei den beiden letztgenannten Lösungsansätzen sollte natürlich das Einverständnis des Inhabers der anderen Domain vorausgesetzt sein)

17.05.2007 15:55 | geändert: 17.05.2007 15:59

5 Uwe (Gast)

Hallo,
danke, hätte nicht gedacht das das ein Problem gibt.

ABER könnte ich nicht auch eine Datei
Belegungsplan.php oder Belegungsplan.html erstellen und dort eine Weiterleitung
auf die andere Seite machen?

Wie müste dann das PHP Script aussehen?

Gruss
Uwe

17.05.2007 16:03

6 Jörg Kruse

Eine Weiterleitung ist wie gesagt kein Problem - die URL ändert sich dann halt

Die Funktionsweise von file() ist hier beschrieben:

http://de.php.net/file

Wenn relative oder absolute Pfade angepasst werden müssen, sollte man den Inhalt dann einfach so ausgeben können:

<?php

$lines = file ('http://www.example.com/');

foreach ($lines as $line) {
    echo $line, "\n";
}

?>

Falls relative oder absolute Pfade vorhanden sind, sollten diese vor einer Ausgabe sinnvoll ersetzt werden (z.B. mithilfe von preg_match())

Oder du liest den Inhalt mit fopen() ein und gibst ihn dann aus:

http://de.php.net/fopen

In beiden Fällen erstellst du eine Art Web-Proxy: du machst den Inhalt einer Domain auch unter einer anderen Domain verfügbar

Einfacher wäre aber ein Frameset - dies würde auch weniger Traffic und Rechenleistung des Servers verursachen

17.05.2007 16:42 | geändert: 17.05.2007 16:44

7 Uwe (Gast)

Hallo,


jetzt sieht es so aus:

Warning: file() [function.file]: URL file-access is disabled in the server configuration in /home/www/s001w101/html/belegungsplan.php on line 3

Warning: file(http://www.ferien-europa.de/fe/be/GetPage?page=111) [function.file]: failed to open stream: no suitable wrapper could be found in /home/www/s001w101/html/belegungsplan.php on line 3

Warning: Invalid argument supplied for foreach() in /home/www/s001w101/html/belegungsplan.php on line 5




Mein php script:
<?php

$lines = file ('http://www.ferien-europa.de/fe/be/GetPage?page=111');

foreach ($lines as $line) {
echo $line, "\n";
}

?>


Gruss
Uwe

17.05.2007 16:58

8 lego-maik (Gast)

Da ist eindeutig eine Server-Konfiguration nicht richtig. Oder sie ist ausgeschaltet, das kannste aber ändern, vorrausgesetzt, es ist dein Server!

17.05.2007 17:34

9 Jörg Kruse

Der Fehlermeldung zufolge lässt die Konfiguration des Servers einen Dateizugriff über HTTP nicht zu:

URL file-access is disabled in the server configuration

Edit: zu spät ;)

17.05.2007 17:36 | geändert: 17.05.2007 17:37

10 Lars (Gast)

Sorry Leute, dass ich das alte Posting auffrische, aber ich habe das selbe problem.

Die Weiterleitung funktioniert, aber im Browser wird der alte URL angezeigt. Gibt es als einzigen Grund nur die fehlende HTTP-Unterstützung oder kann ich den Fehler noch wo anders sucheN?

Der Fehlermeldung zufolge lässt die Konfiguration des Servers einen Dateizugriff über HTTP nicht zu:

URL file-access is disabled in the server configuration

21.04.2009 09:57