Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

mittels mod_rewrite auch den arbeitspfad wechseln?

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
azido
PostRank 1
PostRank 1
Beiträge: 2
Registriert: 18.03.2009, 14:25

Beitrag von azido » 18.03.2009, 14:35

servus..

ganz einfache frage:

ich hab eine url

https://baustelle.meineseite.de/e107_pl ... /index.php

diese würde ich gern mit mod_rewrite in eine einfachere umwandern wie

https://baustelle.meineseite.de/live_chat.html

mittels eintrag
RewriteRule ^live_chat\.html$ /e107_plugins/phpfreechat_menu/index.php [L]

komme ich nicht weiter, weil der arbeitspfad für das script dann im root ist und es somit nicht mehr funktioniert.

mittels
RewriteRule ^live_chat\.html$ /e107_plugins/phpfreechat_menu/index.php [R]

funktioniert die umwandlung/weiterleitung und natürlich auch das script, aber im browser wird dann natürlich wieder der komplette pfad angezeigt.

gerade den möchte ich aber unterbinden. für den benutzer soll im browser immer noch https://baustelle.meineseite.de/live_chat.html stehen.

kann ich das lösen, ohne im script die pfade festnageln zu müssen?

vom "menschlichen" verständnis her gesehen sollte der apache beim aufruf von live_chat.hmtl unerkannt für den benutzer ins verzeichnis /e107_plugins/phpfreechat_menu wechseln und dort dann die index.php ausführen..

geht das?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Anonymous

Beitrag von Anonymous » 18.03.2009, 15:51

öhm... was hat denn die url für den aufruf mit dem pfad für das script zu tun wenn mod_rewrite verwendet wird?

Anonymous

Beitrag von Anonymous » 18.03.2009, 15:54

kann es sein das die site sich selber immer wieder automatisch aufruft und dann eben auf die URL ohne mod_rewrite landet? Falls ja, musste das im script selber entsprechend ändern, das kannste per mod_rewrite nicht lösen... mod_rewrite kann nur die URL beim aufruf ändern... im Script musste die dann selber ändern?

DZVO
PostRank 6
PostRank 6
Beiträge: 476
Registriert: 27.12.2005, 04:44

Beitrag von DZVO » 18.03.2009, 16:06

Versuch mal noch in den Kopf deiner .htaccess folgendes reinzuschreiben, wenn du es noch nicht drin haben solltest.

RewriteBase /

da du bei manchen Anbietern dem Script sagen musst wo dein root-verzeichnis sich befindet.

ansonsten wäre es vllt hilfreich eine fehlermeldung zu sehen
kuckst du oder schluckst du .... | FollowTheMillion sag ich nur :)

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 18.03.2009, 19:13

azido hat geschrieben:weil der arbeitspfad für das script dann im root ist und es somit nicht mehr funktioniert.
[…]
vom "menschlichen" verständnis her gesehen sollte der apache beim aufruf von live_chat.hmtl unerkannt für den benutzer ins verzeichnis /e107_plugins/phpfreechat_menu wechseln und dort dann die index.php ausführen..
Dein Problem kann ich nicht ganz nachvollziehen, zumindest mein Apache macht genau das, was du erwartest. Um welches Verzeichnis geht es dir, um jenes im Dateisystem des Servers oder um jenes aus der URL? Auf welche anderen Pfade soll dein Skript zugreifen? Wie ist PHP eingebunden, als Modul oder als CGI-Anwendung?

azido
PostRank 1
PostRank 1
Beiträge: 2
Registriert: 18.03.2009, 14:25

Beitrag von azido » 19.03.2009, 11:43

ich war der meinung ich habe gestern eine antwort geschrieben hier.. wohl nicht auf abschicken geklickt ~schäm~

@DZVO das war so ziemlich das erste was ich in die .htaccess geschrieben hatte (nach RewriteEngine On natürlich) - sonst wären die umleitungen alle nicht möglich gewesen.

@net(t)worker nein, das script wird schon richtig und nur 1x aufgerufen. also die umleitung an sich klappt wunderbar. nur kommt das script selbst dann nicht mehr weiter, weil es aus irgendeinem grund den root als umgebung hat und nicht sein eigenes verzeichnis.

@Mork vom Ork (ja, den kenn ich auch noch :wink: ) also:

ich betreibe ein cms namens e107. zusätze (wie der genannte chat) werden über ein eigenes plugin-verzeichnis verwaltet (e107_plugins), in welchem dann die einzelnen plugins ihr eigenes verzeichnis haben (phpfreechat_menu).

so. wenn ich nun den chat bzw. dessen script starte, lautet der link

https://www.meineseite.de/e107_plugins/ ... /index.php

ich möchte aber verhindern, dass meine benutzer diesen kompletten pfad sehen. also lasse ich sie den chat aufrufen mit

https://www.meineseite.de/live_chat.hmtl

und schreibe dazu die passende rewrite-rule.

RewriteRule ^live_chat\.html$ /e107_plugins/phpfreechat_menu/index.php

die index.php wird dann auch aufgerufen, ist aber abhängig von anderen daten, die ebenfalls in /e107_plugins/phpfreechat_menu liegen.. als da wären diverse dateien in diesem ordner (beispiel config.php) sowie dateien in den unterordnern

/data/public
/data/private
/i8n
/lib
/src
/themes

diese erreicht das script aber nun nicht mehr, da es wohl nach dem aufruf durch https://www.meineseite.de/live_chat.html davon ausgeht, es befände sich im rootverzeichnis des servers und nicht in seinem eigentlichen pfad. ich vermute die verantwortlichkeit hierfür in abhängigkeiten wie dieser

require_once dirname(__FILE__)."/src/phpfreechat.class.php";

von meinem logischen verständnis her bedeutet das "hol dir ausgehend vom verzeichnis der aufgerufenen datei (in dem fall wohl live_chat.html?) im unterverzeichnis src die datei phpfreechat.class.php, weil die einmalig gebraucht wird"

jetzt frage ich mich natürlich, kann ich dem script in irgendeiner form (RewriteCond) verklickern, es sei in seinem richtigen verzeichnis, oder muss ich mich durch alle abhängigkeiten des/der scripte wühlen und den kompletten pfad von hand eintragen..

php ist als modul eingebunden.

ich hoffe nun wird es klarer..

:roll:

danke übrigens soweit mal für eure antworten..

Anonymous

Beitrag von Anonymous » 19.03.2009, 14:41

wenn es ein chat ist muss die aufgerufene Webseite ja auch noch irgendwie mit dem server kommunizieren, es werden also weitere Aufrufe getätigt... und diese musst du eben auch noch per mod_rewrite "umbiegen"...

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 19.03.2009, 20:59

azido hat geschrieben:require_once dirname(__FILE__)."/src/phpfreechat.class.php";
Erstelle mal eine Testdatei /e107_plugins/phpfreechat_menu/test.php mit dem Inhalt echo dirname(__FILE__); und rufe sie einmal direkt und einmal mit mod_rewrite "verbogen" auf. Was wird da ausgegeben? IMHO dürfte es da keinen Unterschied geben. Das ist das, was ich bereits schrieb: Auf Zugriffe über die Dateisystemebene hat die genutzte URL keinen Einfluss.

Sind beide Ausgaben gleich, müsste auch require() die Datei unabhängig von der URL einbinden können.
jetzt frage ich mich natürlich, kann ich dem script in irgendeiner form (RewriteCond) verklickern
Nein. require() & Co. arbeiten auf Dateisystemebene, die Daten für mod_rewrite kommen immer aus einer URL.

Dateien, die du hingegen mittels HTML oder CSS ansprichst (<script src="bla">), kannst und musst du ebenfalls mit mod_rewrite umbiegen, wie networker das schon sagte.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag