Sicher sein, dass mod-rewrite aktiv ist?

hpvw

Erfahrenes Mitglied
Hallo!
Ein Bekannter von mir hat bei T-Online einige Domains gehostet.
Leider scheint es dort nicht möglich zu sein, einzelne Domains auf ein Unterverzeichnis umzuleiten. Zumindest finde ich nichts dergleichen in der Konfigurationsoberfläche oder der Hilfe. Der Support will mir scheinbar nicht antworten.

Meine Idee war nun, dies mit mod-rewrite zu machen. Sollte machbar sein, würde ich wohl auch mit genügend Probieren hinkriegen, aber erstmal will ich sichergehen, dass mod-rewrite überhaupt auf dem Server aktiv ist.

Dazu habe ich es mit folgenden zwei .htaccess Dateien versucht.
Ich habe sie jeweils ins oberste Verzeichnis hochgeladen (was auch nicht per ftp, sondern nur über die Weboberfläche ging) und getestet, indem ich http://www.domain.de/.htaccess im Browser eingegeben habe:
Code:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^\.htaccess$ - [F]
Code:
RewriteEngine on
RewriteBase /
RewriteRule ^\.htaccess$ - [F]
Sind diese Einstellungen soweit richtig? Oder mit anderen Worten: Wenn er mir die .htaccess trotzdem im Browser anzeigt, kann ich dann sicher sein, das mod-rewrite auf dem Server nicht zur Verfügung steht?

Die Datei zeigt er nämlich im Browser an.

Das erste Beispiel kam übrigends aus einem Tutorial, die Änderung im zweiten habe ich auf Grund von Indizien aus der Forensuche gemacht.

Ich würde gerne sicherstellen, dass mod-rewrite funktioniert, bevor ich mich intensiv mit mod-rewrite beschäftige, um das Problem zu lösen. Ansonsten steht wohl ein Providerwechsel an.

Vielen Dank und Gruß
hpvw
 
Hallo!

Ob dein Code stimmt, kann ich dir nicht sagen, da ich mich mit mod_rewrite noch nicht befasst habe.
Aber richtig sein kann es nicht, denn es steht nirgendwo welche Domain in welches Verzeichnis geleitet werden soll.
Näheres zu mod_rewrite findest Du hier.
Allgemeines zu .htaccess findest Du hier.

Dass die .htaccess im Browser angezeigt wird, lässt mich zum ergebnis kommen dass .htaccess garnicht möglich ist oder der Server nicht richtig konfiguriert ist.
Evtl. hat T-Online auch einen andern Namen für die Datei in der Konfiguration angegeben, denn .htaccess ist nur der Standardname und kann durch jeden beliebigen Namen ersätzt werden.

Ob mod_rwwrite zumindest geladen ist, kannst Du mit folgendem PHP-Code testen:
PHP:
<?php phpinfo() ?>
Den Inhalt in eine Textdatei kopieren und als Dateiname.php speichern.
Dann die Datei hochladen und unter www.domain.de/Dateiname.php aufrufen.
Sollte in dem Abschnitt "apache" unter "Loaded Modules" nicht "mod_rewrite" stehen, hat sich jede weiter Überlegung erledigt.
Und wenn es dort steht, heisst es lediglich dass das Modul vom Server geladen wurde, nicht jedoch ob es auch für die Kunden nutzbar ist.

Gruss Dr Dau
 
Hi Dr. Dau,

danke für die Antwort, vielleicht hatte ich mich etwas unverständlich ausgedrückt:
Der Code sollte noch gar nicht weiterleiten. Ich wollte nur mit einer einfachen Anweisung testen, ob überhaupt mod-rewrite aktiv ist. Angeblich soll mit dem Code der Server bei Anfrage nach .htaccess den Status "forbidden" senden. Und da das nicht funktioniert hat und um sicher zu sein, hatte ich gehofft, dass mir einer der Experten sagen kann, ob der Code syntaktisch korrekt ist und ob mein Schluss, "mod_rewrite geht nicht auf dem Server", richtig ist.

Der Tipp mit PHP-Info ist schon nicht schlecht, ich wusste gar nicht dass PHP überhaupt Informationen über Apache-Details hat. Leider gibt es den angesprochenen Abschnitt auf dem T-Online Server nicht. Auch die Suche in dem erzeugten Dokument nach "mod", "rew" und ähnlichen Begriffen hat nur alle möglichen Einstellungen, die die Strings enthalten, gefunden, aber keinen Hinweis auf installierte Apache-Module. Auf meinem lokalen gibt es einen Abschnitt apache2handler und ich bekomme auch Informationen zu den Loaded Modules. Auf dem Server ist laut phpinfo() Apache 2.0.54 mit PHP4 und auf meinem lokalen Apache 2.0.53 mit PHP5. So steht es unter Environment und PHP-Variables. Vielleicht liegt es daran oder T-Online hat die Informationen zu Apache-Details unterdrückt. Da ich lokal mod_rewrite noch nicht zum Laufen bekommen habe, kann ich hier leider auch nicht testen.

Mittlerweile hat sich der Support auch zurückgemeldet. Sie müssten die Mail an einen Experten weiterleiten, der sich des Problems annimmt, das könne etwas länger dauern.
Naja, mal abwarten.

Gruß hpvw
 
Hallo!

Also, ein "forbidden" kommt selbst wenn in der .htaccess NICHTS drin steht (habe ich grad mal bei mir getestet, sowohl ohne Inhalt wie auch mit beiden Codes von dir).
Wenn ich die Date z.b. .bla nenne, wird mir der Inhalt im Browser angezeigt.

Mit andern Worten, selbst wenn dein Code ein forbidden ergeben würde, wüsstest Du noch immer nicht ob mod_rewrite an ist.

Da Du den Inhalt der .htaccess ja sehen kannst, gehe ich davon aus dass T-Online wie zuvor schon erwähnt, in der Server Konfiguration einen anderen Dateiamen vergeben hat.
Dass sie die "Funktion .htaccess" (keine Ahnung wie man das richtig nennt) komplett deaktiviert haben, kann ich mir eigentlich nicht vorstellen.
Evtl. hilft hier auch eine Mail an den Support.

Gruss Dr Dau
 
Dr Dau hat gesagt.:
Also, ein "forbidden" kommt selbst wenn in der .htaccess NICHTS drin steht (habe ich grad mal bei mir getestet, sowohl ohne Inhalt wie auch mit beiden Codes von dir).
Wenn ich die Date z.b. .bla nenne, wird mir der Inhalt im Browser angezeigt.
Das ist bei mir lokal auch so.

Dr Dau hat gesagt.:
Mit anderen Worten, selbst wenn dein Code ein forbidden ergeben würde, wüsstest Du noch immer nicht ob mod_rewrite an ist.
Das ist richtig, wenn man vom Normalfall einer standardmäßg verbotenen .htaccess ausgeht.

Dr Dau hat gesagt.:
Da Du den Inhalt der .htaccess ja sehen kannst, gehe ich davon aus dass T-Online wie zuvor schon erwähnt, in der Server Konfiguration einen anderen Dateiamen vergeben hat.
Das ist möglich. Ich konnte jedoch nirgendwo bei T-Online Informationen dazu finden.

Dr Dau hat gesagt.:
Dass sie die "Funktion .htaccess" (keine Ahnung wie man das richtig nennt) komplett deaktiviert haben, kann ich mir eigentlich nicht vorstellen.
Evtl. hilft hier auch eine Mail an den Support.
Vorstellen kann ich mir das schon.
Das "Übliche" von .htaccess ist ja der Verzeichnisschutz und der wird dort über die Konfigurationsoberfläche gemacht. Damit wäre ja eine .htaccess nicht mehr nötig :mad:

Dr Dau hat gesagt.:
Evtl. hilft hier auch eine Mail an den Support.
Ich habe denen das Problem recht umfassend geschildert und auch die Idee mit .htaccess und mod-rewrite geschrieben. Ich denke, wenn sie noch antworten, werden sie mir auch sagen, dass .htaccess anders genannt wurde.
Ich werde jetzt mal abwarten, vielleicht kommt Montag (oder heute noch?) ja eine Nachricht vom Support.

Vielen Dank für Deine Hilfe
Gruß hpvw
 
Hallo!

Verweisen die Domains denn alle auf das selbe Verzeichnis bzw. Datei?
Wenn ja, dann befürchte ich dass es nur über ein entsprechenden Eintrag im DNS möglich ist.

Wenn nicht, dann währe zumindest eine Umleitung von z.b. irgendwas.html zu http://www.domain.de/irgendwo/seite.html möglich.... sofern du den Namen für die .htaccess kennst.

.htaccess
Code:
Redirect permanent / http://www.aol.de/
Wenn ich das auf mein Server packe und meine Domain im Browser eingebe, lande ich auf der HP von AOL *g*.
Allerdings wird dann auch der Text in der Adressleiste in die Zieldomain/Datei geändert

Gruss Dr Dau
 
Dr Dau hat gesagt.:
Verweisen die Domains denn alle auf das selbe Verzeichnis bzw. Datei?
Wenn ja, dann befürchte ich dass es nur über ein entsprechenden Eintrag im DNS möglich ist.
Ja, sie verweisen alle aufs Hauptverzeichnis des Webservers.
Das ist per Standardeinstellung auch üblich, wenn man ein Paket mit mehreren Domains bestellt. Bei anderen Providern ist es jedoch (relativ einfach in der Konfigurationsoberfläche) möglich, dass man einzelne Domains auf Unterverzeichnisse leiten lassen kann. Ob die einzelnen Provider das nun mit Redirect, DNS-Eintrag oder mod-rewrite oder noch anders machen, weiss ich nicht.

Zumindest theoretisch ist es mit mod-rewrite möglich und zwar über die Abfrage des HTTP-Host. Der ist in PHP-Info auch unterschiedlich, je nach dem, was man im Browser eingibt. Und wenn PHP das weiß, dann weiß Apache das auch.

Vereinfacht gesagt ist mod-rewrite ja auch eine Weiterleitung, nur halt intern, ohne dass der User etwas merkt.

Du hast mich jetzt aber auf eine Idee gebracht:
Ein permanenter Redirect auf ein Unterverzeichnis käme ja nicht in Frage, da alle Domains auf verschiedene Unterseiten verweisen sollen.
Aber mit PHP komme ich ja an $_SERVER['HTTP_HOST'] oder so ähnlich ran. Danach könnte ich dann mit header je nach Domain auf die verschiedenen Verzeichnisse weiterleiten. Das sehe ich allerdings nur als Notlösung, da in der Adressleiste nach Möglichkeit nicht noch ein Unterverzeichnis auftauchen soll.
Es wäre natürlich auch denkbar, das auszubauen und sozusagen sein eigenes mod-rewrite mit PHP zu machen, aber bevor ich das mache, kommt die Seite auf einen anderen Server.

Gruß hpvw
 
Hallo!

hpvw hat gesagt.:
Ja, sie verweisen alle aufs Hauptverzeichnis des Webservers.
Somit fällt o.g. schonmal weg.

hpvw hat gesagt.:
Zumindest theoretisch ist es mit mod-rewrite möglich und zwar über die Abfrage des HTTP-Host. Der ist in PHP-Info auch unterschiedlich, je nach dem, was man im Browser eingibt. Und wenn PHP das weiß, dann weiß Apache das auch.
Dann könntest Du es auch gleich ganz in PHP machen, über if und else müsste ja eine umleitung zu den entsprechenden Verzeichnisen je nach eingegebener Domain möglich sein.

hpvw hat gesagt.:
Aber mit PHP komme ich ja an $_SERVER['HTTP_HOST'] oder so ähnlich ran.
So ähnlich? Ist schon richtig so. ;)

hpvw hat gesagt.:
Danach könnte ich dann mit header je nach Domain auf die verschiedenen Verzeichnisse weiterleiten. Das sehe ich allerdings nur als Notlösung, da in der Adressleiste nach Möglichkeit nicht noch ein Unterverzeichnis auftauchen soll.
Sollte klappen.... aber frag mich lieber nichts zu PHP, mein Wissen dazu beschränkt sich bei nur auf ein minimum.
Lieber eine Notlösung, als garkeine Lösung. ;)

hpvw hat gesagt.:
Es wäre natürlich auch denkbar, das auszubauen und sozusagen sein eigenes mod-rewrite mit PHP zu machen, aber bevor ich das mache, kommt die Seite auf einen anderen Server.
Wenn man in PHP fit ist, dürfte es nicht so das Problem sein... mit hilfe von http_host, header, if und else.

Gruss Dr Dau

[edit] Bevor Du dir aber die Arbeit mit PHP machst, solltest Du aber erstmal mit einem statischem header prüfen ob die Weiterleitung überhaupt möglich ist.... ich habe ganz schön blöde geguckt als ich meine Seite fertig hatte und sie dann nicht weitergeleitet hatte (auf meinem Server hat es nämlich funktioniert) :( [/edit]
 
Zuletzt bearbeitet:
Dr Dau hat gesagt.:
Wenn man in PHP fit ist, dürfte es nicht so das Problem sein... mit hilfe von http_host, header, if und else.
...
[edit] Bevor Du dir aber die Arbeit mit PHP machst, solltest Du aber erstmal mit einem statischem header prüfen ob die Weiterleitung überhaupt möglich ist.... ich habe ganz schön blöde geguckt als ich meine Seite fertig hatte und sie dann nicht weitergeleitet hatte (auf meinem Server hat es nämlich funktioniert) :( [/edit]
Ich halte mich schon für relativ Fit in PHP.
Eine Weiterleitung, bei der der User das Unterverzeichnis der beteffenden Domain in der Adressleiste sieht ist sicher kein Problem. Und wenn sie die Funktion header unterdrücken wäre das ein Grund sofort zu kündigen.
Wenn der User das Unterverzeichnis nicht sehen soll, benötigt man jedes Unterverzeichnis jeder einzelnen Domain auch im Hauptverzeichnis, damit der Request kein 404 bringt, dann kann man mit PHP entsprechend die richtigen Dateien mit include einbinden, aber das macht deutlich mehr Arbeit, als ein Providerwechsel, würde aber nicht mal einen neuen Header benötigen.

Gruß hpvw

EDIT: Lösung: War alles zuviel Aufwand, Provider wurde gewechselt.
 
Zuletzt bearbeitet:
Zurück