Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: Browserweiterleitung ohne Adresszeilen-Änderung

  1. #1
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101

    Browserweiterleitung ohne Adresszeilen-Änderung

    hi

    Ich habe meine Domain bei 1und1 und in dem Paket, das ich habe, wird kein PHP unterstützt. Um PHP zu bekommen, muss ich ganze zwei Pakete rauf, was horrende teuer würde.

    Also habe ich mir einen gratis-host besorgt, der PHP unterstützt. Nun ist die Adresse dieses gratis-hosts natürlich nicht gerade ansprechend, weshalb ich diese gerne vor den Besuchern verschleiern würde.
    Wenn ich also z.B. nichts als einen Frame auf die index.html-Seite setze, der auf die Adresse des gratis-hosts linkt, würde das Problem soweit schonmal keins mehr sein. Dann tut sich allerdings ein anderes auf. Und zwar möchte ich, dass der request-string (also alles was nach dem '?' kommt, und das '?' selbst auch) für den Benutzer sichtbar ist.

    Mit anderen Worten, ich will, dass meine Seite mit http://domainxyz.de/index.html?param1=a&param2=2 aufgerufen werden kann und diese parameter automatisch auch für die Seite im Frame gelten.

    Das alles muss logischerweise ohne PHP funktionieren, da auf domainxyz.de kein PHP unterstützt wird.

    Gibt es dafür eine "übliche" Lösung? Oder zumindest eine, die auf jedem Browser funktioniert (möglichst auch ohne java-script).

    Gruß, Qudus

    PS: Ich hoffe, ich habe nicht zu sehr verwirrt. Ansonsten immer nachfragen.

  2. #2
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Qudus
    hi
    Mit anderen Worten, ich will, dass meine Seite mit http://domainxyz.de/index.html?param1=a&param2=2 aufgerufen werden kann und diese parameter automatisch auch für die Seite im Frame gelten.

    Das alles muss logischerweise ohne PHP funktionieren, da auf domainxyz.de kein PHP unterstützt wird.

    Gibt es dafür eine "übliche" Lösung? Oder zumindest eine, die auf jedem Browser funktioniert (möglichst auch ohne java-script).

    Gruß, Qudus

    PS: Ich hoffe, ich habe nicht zu sehr verwirrt. Ansonsten immer nachfragen.
    Nö, was 100% gibt es in deinem Fall nicht.
    Umleitungen im Browser können teilweise ausgeschaltet werden.
    Wenn Du eine eine eigene .htaccess anlegen darfst, kannst du
    mit MOD_REWRITE rumspielen.
    Mal beim Provider nachfragen, ob das Modul installiert ist.
    Geändert von Romanday (17-09-2005 um 09:35 Uhr)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  3. #3
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101
    Zitat Zitat von Romanday
    Wenn Du eine eine eigene .htaccess anlegen darfst, kannst du
    mit MOD_REWRITE rumspielen.
    Mal beim Provider nachfragen, ob das Modul installiert ist.
    Wo muss denn das Modul installiert sein. Bei dem Apache, der den Webspace für die index.html verwaltet oder bei dem, der den für die restlichen (php-)Dateien hosted?

  4. #4
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Qudus
    Wo muss denn das Modul installiert sein. Bei dem Apache, der den Webspace für die index.html verwaltet oder bei dem, der den für die restlichen (php-)Dateien hosted?

    Wenn du php auf deinem Account ausführen kannst,
    ließ mal die Environments aus.
    Dort findest du unter Loaded Modules die Einträge vom IndianerII.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Zitat Zitat von Qudus
    Wo muss denn das Modul installiert sein. Bei dem Apache, der den Webspace für die index.html verwaltet oder bei dem, der den für die restlichen (php-)Dateien hosted?
    Das mod_rewrite Modul muss auf dem Server laufen, auf dem Du die index.html liegen hast (also da, wo Dein PHP nicht läuft). Allerdings muss man in der Serverconfig erlauben, dass der User dieses Modul per .htaccess verwenden darf. Und das ist in den kleineren Paketen bei 1&1 vermutlich nicht der Fall.

    Was die Frames betrifft, so würde mir jetzt nur eine Möglichkeit einfallen:

    Du legst folgende index.html auf Deinen 1&1 Host:


    Code:
    <html>
      <head>
        <script language="Javascript" type="text/javascript">
          <!--
            var URL = 'http://php-host.tld/index.php';
            document.write("<frameset cols=\"100%\">");
            document.write("<frame src=\"" + URL + window.location.search + "\" frameborder=\"0\"/>");
            document.write("</frameset>");
          -->
        </script>
      </head>
    </html>


    Dieses Skript generiert dann ein 100% großes Frame und läd darin die Seite von Deinem PHP Host nach. Dabei werden alle Parameter, die Du an die index.html angehängt hast, weitergeleitet....

    Dafür ist wichtig, dass alle Links, die Du in Deinem PHP Skript erzeugst, absolut sind und auf http://www.1u1host.de/index.html?par...&param2=value2 ... verweisen. Wichtig ist auch, dass Du bei jedem Link ein Target angibst - und zwar "_parent" - sonst hast Du irgendwann 20 verschachtelte Frames - nur sieht man´s nicht.

    Im Prinzip passiert also folgendes:
    1) Jemand ruft www.1u1host.de auf
    2) Das Javascript baut das Frame auf und stellt die index.php vom php Host dar.
    3) die index.php generiert links wie: http://www.1u1host.de/index.html?pag...=31432j14kllkj
    4) jemand klickt auf diesen Link.
    5) Das Javascript baut erneut das Frame auf, ruft die index.php vom php Host auf und gibt diesmal zusätzlich die Parameter mit - die Seite wird entsprechend dargestellt.

    Der Unterschied zu einem normalen Frameset ist halt, dass Du so immer den kompletten Querystring in der Adresszeile stehen hast.

    z.B. http://1u1host.de/index.html?page=test

    vielleicht kannste das ja gebrauchen...
    Aber wie gesagt, schöner wäre die Lösung über mod_rewrite.

  6. #6
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101
    Vielen Dank. Bisher gefällt mir die Version mit dem javascript-frame ganz gut. Das mit dem Mod_rewrite werde ich mal testen. Und ich muss überhaupt erstmal in Erfahrung bringen, was das tut.

    Werd das alles morgen mal machen. Ich meld mich dann, wenn ich was genaueres weiß.

    Qudus

  7. #7
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101
    grmpf! Dieses mod_rewrite nutzt ja mal wieder diese hochgradig beschissenen perl-regexps. Ich hasse die. Die mögen zwar wunderbar mächtig sein. Aber die Sytax ist ja wohl das allerletzte.

    Kannst Du mir vielleicht einen Tip geben, wie so eine .htaccess-Datei aussehen müsste? Ich habe das eben mal versucht und bin kläglich gescheitert. Oder mod_rewrite ist nicht auf meinem host installiert. Kann ich das irgendwie (ohne php) ausfinden?

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Also wie gesagt, ich bezweifle, dass Du rewrite in so kleinen Paketen nutzen kannst... das ist ein relativ mächtiges Modul was man zum Beispiel sehr gut für Suchmaschinenoptimierung nutzen kann...

    Sag mal was Du in was umwandeln willst...

    Ein simples Beispiel um test.html auf index.html umzuschreiben wäre:
    Code:
    RewriteEngine on
    RewriteRule ^test.html$ index.html

  9. #9
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101
    Zitat Zitat von michael.sprick
    Sag mal was Du in was umwandeln willst...
    Ich habe zwei domains mit webspace:

    domain1.de (kein PHP)
    domain2.bla.blub.de (mit PHP)

    Wenn ich jetzt folgenden Aufruf mache:

    http://domain1.de/index.php?param1=a&param2=b

    dann soll das weitergeleitet werden auf folgendes:

    http://domain2.bla.blub.de/index.php?param1=a&param2=b

    ohne, dass sich die Adresszeile ändert. Idealerweise sollen dann die php-Seiten auf dem domain2-Webspace auch denken, sie befänden sich auf http://domain1.de/

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Idealerweise sollen dann die php-Seiten auf dem domain2-Webspace auch denken, sie befänden sich auf http://domain1.de/
    Nee - das wird nix. Bei den Links musst Du dann schon relative Links hernehmen oder absolut auf domain1 verweisen.

    folgende regeln sollten können, was Du willst:
    Code:
    RewriteEngine on
    RewriteRule ^index\.php?(.*) http://domain2\.bla\.blub\.de\?$1 [P]
    das [P] steht für internal Proxy - damit bleibt das Ganze transparent für den User - es sieht also so aus, als läge der Content wirklich auf domain1.

  11. #11
    Registrierter Benutzer
    Registriert seit
    20.07.2003
    Beiträge
    147
    Der absolut beste Weg ist es, wenn du 1&1 dazu bringst, die Domain mittels DNS umzuleiten, und deinen gratis Hoster dazu bringst, dir den entsprechenden vHost einzurichten. Aber das wird vermutlich nicht gehen - versuch es trotzdem!

    Wenn das nicht geht und du das ordentich machen willst, dann kommst du an mod_proxy nicht vorbei:

    http://httpd.apache.org/docs/1.3/mod...html#proxypass

    und vor allem auch http://httpd.apache.org/docs/1.3/mod...oxypassreverse

    Wenn das auch nicht geht, dann solltest du auf jeden fall mit mod_rewrite arbeiten.

    Alles andere ist in Wirklichkeit keine ernsthafte Alternative. Javscript? Du sperrst einige User und alle Suchmaschinen aus. Frames? Jede Suchmaschine wird die Benutzer an deinem Frame vorbeileiten - macht also auch nicht wirklich Sinn.

    mfg
    c.

  12. #12
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101
    Zunächst sah das mal ganz gut aus. mad_rewrite ist nutzbar auf meiner Domain. Und die URL wird nicht verändert, während die Seite von einer anderen Adresse geladen wird. Aber nun zu den Nachteilen:

    1. Die html-Parameter werden nicht mit weitergeleitet. Das könnte man aber vielleicht mit einer anderen regexp noch hinbekommen.
    2. Und die Links auf den Seiten zeigen dann wie gewünscht auf domain1.de/linkziel. Aber dieses Ziel gibt es dann nicht, weshalb der Link ins Nirvana geht. Man müsste also die regexp so abändern, dass jede Seite (also nicht nur die index.php), sondern beliebeige Dateinamen - auch Bilder z.B. entsprechend gerewritet werden.


    Kann man das vielleicht noch lösen?

    Qudus

  13. #13
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    probier mal:
    Code:
    RewriteRule ^(.*)$ http://domain2.bla.blub.de/$1 [P]
    wenn das nicht funktioniert, wäre es evtl. nützlich, wenn Du die echten Domains mal postest - oder per PM schickst...
    Dann kann man sich die Links und Namen mal anschauen...
    # Die html-Parameter werden nicht mit weitergeleitet. Das könnte man aber vielleicht mit einer anderen regexp noch hinbekommen.
    hmmm - seltsam... eigentlich wird der komplette Querystring weitergeleitet. Bei mir funktioniert das auch...

  14. #14
    Registrierter Benutzer Avatar von Qudus
    Registriert seit
    14.03.2005
    Beiträge
    101
    So funktioniert das schon fast ideal. Nur noch ein Problem: Versuch mal die Seite ohne index.php oder index.html aufzurufen.

    Ich habe Die den Link per PM geschickt.


    Edit: Ahh. Das liegt an der Weiterleitung, die ich in der ersten Zeile der index.php mache. Da steht soviel wie "Wenn der Parameter 'param1' nicht übergeben wurde, dann leite per header nach $_SERVER["PHP_SELF"]."?param1=bla" weiter."

    Dabei vergisst er dann, dass /test im Aufruf drin war. Ich schätze, das kann man ihm nicht noch beibiegen, oder?

    Das wäre aber nicht so schlimm. Ich sehe es sowieso kommen, dass ich die Links nicht mit $_SERVER["PHP_SELF"] werde zusammensetzen können, sondern ich werde wohl die "fake"-Domain in eine Variable schreiben müssen und diese dann stattdessen benutzen. Da kann ich dann gleich noch den Ordner mit reinschreiben.


    Edit: So. Ich habe jetzt den Ordner /test hardcodiert reingeschrieben. So funktioniert es. Das ist praktikabel.

    Also vielen Dank.

    Qudus
    Geändert von Qudus (19-09-2005 um 22:16 Uhr)

  15. #15
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    zu dem Kapitel mod_rewrite gehört auch noch RewriteCond - damit kannst Du Bedingungen angeben, unter denen eine bestimmte Regel greifen soll. Du kannst auch mehrere Bedingungen logisch verknüpfen.

    Doku und ein paar BEispiele dazu findest Du auf der apache seite

    Ansonsten bin ich überrascht, dass das auf dem 1&1 Server geht. Gut zu wissen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •