.htaccess
native
- html
hi, ich habe heute morgen schonmal gepostet: ich möchte gerne alle dateien in einem verzeichnis auf eine andere domain umleiten. da das verzeichnis aber mit einer subdomain aufgerufen wird, geht es nicht mit "Redirect /dir /domain". von meinem ISP habe ich den tipp, es mit RewriteEngine zu machen, allerdings klappt das bisher nicht. ich kenne mich kaum mit .htaccess aus, und wollte deswegen fragen, ob mir jemand sagen, wo der fehler in meinem skript liegt:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://subdomain.domain.com
RewriteRUle https://ssl.de/subdomain.domain.com
das ganze soll einfach alle anfragen über den SSL proxy umleiten.
mfg
-native.
Hi,
hi, ich habe heute morgen schonmal gepostet:
und warum benutzt Du dann nicht den bereits offenen Thread?
ich kenne mich kaum mit .htaccess aus,
.htaccess ist der Standardname der verzeichnislokalen Konfigurationsdatei des Apache-Webservers. Du findest also alles Notwendige in der Apache-Doku unter http://www.apache.org/. Die RewriteEngine ist ein Teil des Moduls mod_rewrite.
Cheatah
vielen dank für den netten hinweis. ich hab mich jetzt durch den "URL Rewriting Guide" gelesen, auch ein paar sachen ausprobiert, leider funktioniert nichts davon. das problem ist - glaube ich - dass das verzeichnis über eine subdomain angesprochen wird. keine ahnung, wie ich das in der .htaccess formuliere.
falls dein verweis auf die DOC nicht nur eine ausweichen war, sondern du dich wirklich besser auskennst, wäre ich dir für hilfe sehr dankbar!
mfg
-native.
Hi,
vielen dank für den netten hinweis. ich hab mich jetzt durch den "URL Rewriting Guide" gelesen, auch ein paar sachen ausprobiert, leider funktioniert nichts davon.
was hast Du versucht, woran ist es gescheitert?
das problem ist - glaube ich - dass das verzeichnis über eine subdomain angesprochen wird. keine ahnung, wie ich das in der .htaccess formuliere.
Richtige RewriteCondition, passende RewriteRule. Eigentlich sehr einfach. Beachte auch die grundlegende Syntax der RewriteRule-Direktive.
falls dein verweis auf die DOC nicht nur eine ausweichen war, sondern du dich wirklich besser auskennst, wäre ich dir für hilfe sehr dankbar!
Ich helfe Dir gerne, aber nur insofern, dass Du selbst zur Lösung findest. Tipp: Der HTTP_REFERER ist grundsätzlich eine schlechte Wahl, wenn man sich auf etwas verlassen können muss.
Cheatah
ok, das war mein letzter versuch:
RewriteEngine on
RewriteCond %{HTTP_X_FORWARDED_HOST} ^.+.subdomain.com$
RewriteRule https://ssl.de/subdomain.com/$1 [R,L]
du könntest mir sonst auch tipps für einen lösungsansatz geben, wenn du schon keine lösung posten willst.
mfg
-native.
Hi,
RewriteCond %{HTTP_X_FORWARDED_HOST} ^.+.subdomain.com$
X-Header sind in jeder Beziehung undefiniert bzw. können von jedem völlig frei gesetzt werden. Schau Dir das Environment eines solchen Requests noch mal genauer an.
RewriteRule https://ssl.de/subdomain.com/$1 [R,L]
Wie gesagt, beachte die Syntax dieser Direktive. Tipp: Sie enthält nicht nur das Ziel.
du könntest mir sonst auch tipps für einen lösungsansatz geben, wenn du schon keine lösung posten willst.
Das tue ich schon die ganze Zeit ;-)
Cheatah
hm, ich muss gestehen: keine ahnung, was genau du meinst. ich habe bisher noch nicht viel mit .htaccess gemacht, außer verzeichnisse geschützt, und Unix/Linux kann ich auch nur ganz rudimentär. eigentlich programmiere ich nur in PHP.
von daher weiss ich auch, dass X-Header unzuverlässig sind, habe aber keine ahnung, wie ich das hier anders lösen könnte.
könntest du mir etwas ausführlichere tipps geben?
mfg
-native.
Hi,
keine ahnung, was genau du meinst.
http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteRule:
"Syntax: RewriteRule Pattern Substitution"
Du schreibst nur "RewriteRule Substitution".
ich habe bisher noch nicht viel mit .htaccess gemacht, außer verzeichnisse geschützt, und Unix/Linux kann ich auch nur ganz rudimentär. eigentlich programmiere ich nur in PHP.
Kenntnisse keiner dieser Techniken nützen Dir viel. Regular Expressions helfen für die Details.
von daher weiss ich auch, dass X-Header unzuverlässig sind, habe aber keine ahnung, wie ich das hier anders lösen könnte.
Wie gesagt: Lass Dir das Environment ausgeben.
könntest du mir etwas ausführlichere tipps geben?
Meine Tipps sind dafür bekannt, dass man erst mal darüber meditieren muss :-)
Cheatah
sorry, aber willst du einfach raushängen lassen, dass du es besser kannst? oder mir zeigen, dass ich keine ahnung davon habe?
mfg
-native.
also, hier mein nächster versuch:
RewriteEngine on
RewriteCond %{HTTP_X_FORWARDED_HOST} ^.+.secure.doamin.com$
RewriteRule http://secure.domain.com https://ssl.kundenserver.de/secure.domain.com/$1 [R,L]
stimmt damit wenigstens die RewriteRule?
mfg
-native.
Hi,
ob ich etwas "raushängen" lassen oder Dir helfen möchte, eruiere bitte anhand des Archivs.
RewriteCond %{HTTP_X_FORWARDED_HOST} ^.+.secure.doamin.com$
Benutze eine andere Umgebungsvariable, die Du sehr leicht erkennst, wenn Du einfach mal meinem Tipp folgst und Dir das Environment ausgeben lässt. Ob die Regular Expression (unabhängig vom Tippfehler :-) stimmt, vermag ich nicht zu beurteilen.
RewriteRule http://secure.domain.com https://ssl.kundenserver.de/secure.domain.com/$1 [R,L]
Syntaktisch ist es jetzt zwar richtig, aber erstens lautet der "von"-Teil anders - folge den Beispielen in der Doku, um den Aufbau zu verstehen - und zweitens benötigt das $1 im "nach"-Teil eine Klammerung im "von"-Teil. Versuche erst eine einfachere Umleitung ohne variables Element.
Cheatah
ok, dann mal anders; ich habe leider nicht den ganzen tag zeit, mich in rewrite_mod einzuarbeiten, und auch kein interesse, am ende dieser woche ein buch darüber schreiben zu können. ich suche einfach eine lösung für ein problem.
vielleicht erinnerst du dich an die schule: der lehrer erklärt zuerst mal, wie es funktioniert, zb anhand eines beispieles. wenn du schon den lehrer raushängen lassen möchtest, dann erklär doch einfach mal, wie es richtig geht. wie gesagt: raushängen zu lassen, dass du es kannst und weisst, wie es geht, hilft mir nicht wirklich weiter.
ansonsten gibt es hier wohl keine unkomplizierte hilfe für mein problem.
-native.
Hi,
ok, dann mal anders; ich habe leider nicht den ganzen tag zeit, mich in rewrite_mod einzuarbeiten, und auch kein interesse, am ende dieser woche ein buch darüber schreiben zu können. ich suche einfach eine lösung für ein problem.
und ich habe keine Zeit, Dir die Doku vorzulesen. Überlege Dir einfach, wer hier was von wem will, und handle entsprechend.
vielleicht erinnerst du dich an die schule: der lehrer erklärt zuerst mal, wie es funktioniert, zb anhand eines beispieles.
In der Doku findest Du _massenweise_ Beispiele, viele davon äußerst praxistauglich.
wenn du schon den lehrer raushängen lassen möchtest, dann erklär doch einfach mal, wie es richtig geht.
Ein guter Lehrer lässt nicht einfach nachplappern, sondern sorgt dafür, dass die Schüler _selbst_ (englisch: "SELF") in der Lage sind, das Problem zu lösen. Diese Fähigkeit ist das Eigentliche, was Dir beizubringen ich bestrebt bin.
wie gesagt: raushängen zu lassen, dass du es kannst und weisst, wie es geht, hilft mir nicht wirklich weiter.
Wenn Du nicht willens bist, die notwendige Initiative zu ergreifen und hinreichende Bemühungen anzustreben (was die Einleitung Deines Postings impliziert), helfe ich Dir in der Tat nicht. Willst Du dieses Minimum an Leistung nicht erbringen, habe ich aber ehrlich gesagt auch nicht den geringsten Bock, meine Perlen vor Dich Sau zu werfen - bildlich gesprochen. Bemühst Du Dich jedoch, zeigst Du mir, dass _meine_ Mühen fruchten, helfe ich Dir beliebig lange und auch bis in die letzten Details. Bedenke[1], welche Gründe ich wohl haben mag, Dir zu helfen - Deine Probleme zu lösen bringt mir exakt gar nichts.
ansonsten gibt es hier wohl keine unkomplizierte hilfe für mein problem.
Nein. Hier gibt es unkomplizierte, aber mühevolle Hilfe für Dein Verstehen.
Cheatah
[1] Lies: Recherchiere im Archiv.
also gut, wenns gar nicht anders geht:
hier meine letzte version:
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_HOST} !^ssl.kundenserver.de$ [NC]
RewriteRule ^(.*)$ https://ssl.kundenserver.de/secure.worldhostelguide.com/$1 [R=301,L]
die RewriteRule sollte stimmen, oder?
wenn du mir jetzt noch sagst, wie ich überhaupt das environment ausgebe, und vielleicht noch einen tipp, nach welcher variable ich suchen muss, bin ich fast glücklich.
sorry, wollte dich nicht blöd anmachen. hab mir gestern den fusszeh gebrochen und bin heute mies drauf und etwas frustriert.
danke fürs helfen!
mfg
-native.
Hi,
RewriteRule ^(.*)$ https://ssl.kundenserver.de/secure.worldhostelguide.com/$1 [R=301,L]
die RewriteRule sollte stimmen, oder?
sie sollte zumindest immer matchen und daher immer weiterleiten - sofern die RewriteCondition zustrifft.
wenn du mir jetzt noch sagst, wie ich überhaupt das environment ausgebe,
Jede halbwegs brauchbare serverseitige Programmlogik erlaubt Dir dies. Bei Perl schaust Du Dir %ENV an, bei PHP findest Du eh jeden denkbaren Schotter in phpinfo(), oder halt nach Doku der von Dir eingesetzten Techniken.
und vielleicht noch einen tipp, nach welcher variable ich suchen muss, bin ich fast glücklich.
Sooo unübersichtlich ist das Environment nicht (phpinfo() schon, aber es lässt sich auch einschränken). Suche einfach nach dem Wert, den Du erwartest.
sorry, wollte dich nicht blöd anmachen. hab mir gestern den fusszeh gebrochen und bin heute mies drauf und etwas frustriert.
Kann ich verstehen, genauso wie eine gewisse Resignation bei fehlenden Ergebnissen. Das nützt Dir aber nichts ;-) Ich zeige Dir immer nur, in welcher Richtung Du die Bröckchen findest; den Stein, den Du anheben musst, musst Du selbst finden. Das mache ich aber, wie gesagt, so lange Du willst.
Cheatah
ok, phpinfo() gibt mir folgende möglichkeiten:
HTTP_X_FORWARDED_HOST oder HTTP_X_FORWARDED_SERVER
beide variablen geben meinen SSL proxy aus. habe auch schon beides eingebaut, nach diesem schema:
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_SERVER} !^ssl.kundenserver.de$ [NC]
RewriteRule ^(.*)$ https://ssl.kundenserver.de/secure.worldhostelguide.com/$1 [R=301,L]
das geht aber nicht. die file liegt dann im verzeichnis, auf das secure.worldhostelguide.com konnektiert ist. und jetzt weiss ich nicht mehr weiter? oder ist der ansatz der RewriteCond völlig falsch?
mfg
-native.
Hi,
ok, phpinfo() gibt mir folgende möglichkeiten:
was, keine andere? Schlecht, sehr schlecht. Der Server scheint nicht sinnvoll konfiguriert zu sein.
HTTP_X_FORWARDED_HOST oder HTTP_X_FORWARDED_SERVER
Oder ist es gar der Server, der dies setzt? Versuche bitte, das herauszufinden.
das geht aber nicht.
Was heißt das? Geht überhaupt keine RewriteRule? Wird die .htaccess-Datei vom Server nicht beachtet? Geht nur diese spezielle nicht? Ist die Condition fehlerhaft?
Versuche, auch mittels Tests diese Fragen zu beantworten.
Cheatah
hehe, "schlecht" klingt nicht gut. ob der server sinnvoll konfiguriert ist, kann ich weder beurteilen noch beeinflussen, da der server gehostet ist (bei 1&1).
wie kann ich herausfinden, ob der server diese variablen setzt? bzw. welche variablen hättest du noch erwartet, vielleicht habe ich was übersehen.
geht nicht heisst: die URL ruft sich immer wieder selbst auf. sprich, ich will eine seite aufrufen, dann ruft er die gleiche seite wieder auf etc (allerdings ohne den SSL proxy), wie ein dauernder reload. eine idee, was ich machen könnte?
thx
-native.
Hi,
hehe, "schlecht" klingt nicht gut.
stimmt :-)
wie kann ich herausfinden, ob der server diese variablen setzt?
Hm, den Provider fragen ...
bzw. welche variablen hättest du noch erwartet, vielleicht habe ich was übersehen.
HTTP_HOST, SERVER_NAME (evtl.)
geht nicht heisst: die URL ruft sich immer wieder selbst auf. sprich, ich will eine seite aufrufen, dann ruft er die gleiche seite wieder auf etc (allerdings ohne den SSL proxy), wie ein dauernder reload. eine idee, was ich machen könnte?
Das sieht so aus, als würde die RewriteCondition nicht greifen. Vermutlich wegen der ungünstigen Umgebungsvariable.
Cheatah
hm, HTTP_HOST gibts, aber die liest nicht den SSL proxy aus, sondern nur die subdomain.
noch eine idee, was ich machen könnte?
mfg
-native.
Hallo,
hm, HTTP_HOST gibts, aber die liest nicht den SSL proxy aus, sondern nur die subdomain.
noch eine idee, was ich machen könnte?
mfg
-native.
Hallo,
probiers mal damit aber du darfst keine index.html , main-datei oder besser noch gar keine datei im verzeichniss
auf dem alten server haben.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule /* https://woSollsDennHinGehen.html [R,L]
Gruss vom Alain
hi, ohne es auszuprobieren glaube ich nicht, dass das geht, weil ich ja nicht auf ein anderes verzeichnis linken will, sondern auf das gleiche, nur dass eben der SSL proxy verwendet werden soll.
sprich: bisher kann man file.php auf 2 wegen erreichen:
1: http://secure.domain.de/file.php
2. https://ssl.de/secure.domain.de/file.php
und ich hätte gerne, dass nur der 2. weg funktioniert. da es sich aber beide male auf dieselbe file im selben verzeichnis handelt, gestaltet sich das irgendwie schwierig.
hast du noch eine andere idee?
mfg
-native.
Hallo native,
1: http://secure.domain.de/file.php
2. https://ssl.de/secure.domain.de/file.phpund ich hätte gerne, dass nur der 2. weg funktioniert. da es sich aber beide male auf dieselbe file im selben verzeichnis handelt, gestaltet sich das irgendwie schwierig.
Probier doch bitte mal:
RewriteEngine on
RewriteRule ^/(.+) http://newserver/$1 [R,L]
Gruss, Thoralf
hallo,
geht leider auch nicht; sieht so aus, als ob dabei die .htaccess gar nicht durchlaufen wird.
mfg
-native.
Hallo,
geht leider auch nicht; sieht so aus, als ob dabei die .htaccess gar nicht durchlaufen wird.
Ich hab selber mehrere Seiten per 1&1, und ich finde gerade, dass deren Serverkonfiguration sehr viele Änderung noch auf .htaccess-Ebene erlaubt. Wie ist denn bei Dir die Subdomain eingerichtet? Eigene Doc-Root auf dem Server, nehme ich an? Gib mal einen Überblick, wie die Subdomain auf den Webspace verweist und dann kan man da auch schauen, wie man umleitet. Zur Not habe ich noch ein PHP-Script, dass eine komplette Domain umleitet.
Gruss, Thoralf
hi, erstmal vielen dank für die hilfe!
das ganze sieht so aus:
ich habe eine subdomain: secure.domain.de
diese ist konnektiert auf das verzeichnis /secure
dann eben den SSL proxy für diese subdomain konfiguriert.
nun möchte ich, dass alle dateien und ordner in /secure nur über den SSL proxy erreichbar sind. hast du eine idee?
hier nochmal mein letztes skript:
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_SERVER} !^ssl.kundenserver.de$ [NC]
RewriteRule ^(.*)$ https://ssl.kundenserver.de/secure.worldhostelguide.com/$1 [R=301,L]
wo genau muss das eigentlich hin? in das verzeichnis /secure oder eins drüber ins stammverzeichnis?
vielen dank fürs helfen!mfg
-native.
Hallo,
hi, erstmal vielen dank für die hilfe!
Schon klar, nach anfänglichen Problemem mit dem Forums-Äffchen ;) ;) ist das ja ein interessantes Thema. ;)
nun möchte ich, dass alle dateien und ordner in /secure nur über den SSL proxy erreichbar sind. hast du eine idee?
Soweit klar, also wer http://secure.example.org/beispiel/beispiel.php aufruft, soll immer umgelenkt werden auf https://ssl.kundenserver.de/secure.example.org/beispiel/beispiel.php?
Wenn ich das so richtig verstanden habe, dann muss eine .htaccess in das Verzeichnis, auf das http://secure.example.org/ verweist. Da Du ja immer verweisen willst, brauchst Du keine Rewrite-Bedingung.
RewriteEngine On
RewriteRule ^/(.+) https://ssl.kundenserver.de/secure.example.org/$1 [R=301,L]
Ich werde das mal bei mir auf dem Server testen. Weil ich im Moment nicht sehe, warum das so nicht gehen sollte.
Gruss, Thoralf
hm, das ist irgendwie seltsam; wenn ich nur diesen code nehme:
RewriteEngine On
RewriteRule ^/(.+) https://ssl.kundenserver.de/secure.example.org/$1 [R=301,L]
dann passiert gar nichts, die datei wird ohne den SSL proxy aufgerufen.
verwende ich:
RewriteEngine On
RewriteCond %{HTTP_X_FORWARDED_SERVER} !^ssl.kundenserver.de$ [NC]
RewriteRule ^(.*)$ https://ssl.kundenserver.de/secure.example.org/$1 [R=301,L]
dann fängt er eine schleife ein, stellt fest, dass kein SSL proxy da ist, will weiterleiten auf den proxy, findet wieder keinen proxy, leitet wieder um etc.
aaaaaaaah, was geht?. funktioniert es auf deiner domain? oder hast du noch einen anderen lösungsvorschlag?
danke!
-native.
Hm, ich fürchte, ich habe die Antwort gefunden:
http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteCond
HTTP_X_FORWARDED_SERVER taucht dort nirgends in der Liste der zulässigen Variablen auf, ich komme also nicht weiter.
Ich hab jetzt mal gegooglet und nur 2-3 Beispiele gefunden, einmal einen russischen Vorschlag, der auf HTTP:X_FORWARDED_SERVER basiert, aber bei mir nicht funktioniert. Die anderen Treffer setzen alle auf einem Patchen des Indianers auf, also auch ausser Betrieb.
Damit hab ich nun keine Idee mehr.
Gruss, Thoralf
tja, dann geht es wohl einfach nicht, schade.
auf jeden fall vielen dank fürs helfen!
mfg
-native.
Hallo,
tja, dann geht es wohl einfach nicht, schade.
auf jeden fall vielen dank fürs helfen!mfg
-native.
Aber warum so schnell aufgeben?
also nochmal zum file.php .
Du hast diese zwei möglichkeiten
1: http://secure.domain.de/file.php
2. https://ssl.de/secure.domain.de/file.php
die beide im selben verzeichniss sind? richtig.
Wenn ich jetzt http://secure.domain.de/ eingebe wird dann file.php automatisch aufgerufen?
Also eine möglich keit wäre wenn Du file.php umbenennst in ein anders file namens main.php z.B.
Dieses file.php darf nicht mehr existieren!
Dann machst Du eine htaccess die so aussieht:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule /* https://ssl.de/secure.domain.de/main.php [R,L]
Dieses script bedeutet wenn jemand dieses verzeichniss aufruft und die datei leer oder nicht existiert
dann leite den url weiter auf https://ssl.de/secure.domain.de/main.php
Diese datei existiert ja also sollte es so gehen.
Gruss vom Alain
hi, danke, aber das hilft mir nicht wirklich weiter. in dem verzeichnis gibt es ja nicht nur diese eine file, sondern nochmal 4 unterordner mit einigen files.
die nächstbeste alternative, die mir eingefallen ist, ist in jeder datei per PHP zu prüfen, ob der SSL proxy benutzt wird (in PHP funktioniert das).
trotzdem danke!
mfg
-native.
Hi Cheatah,
wie kann ich herausfinden, ob der server diese variablen setzt?
Hm, den Provider fragen ...
http://hoohoo.ncsa.uiuc.edu/cgi/env.html ?
Viele Grüße
Michael
Hallo,
probiers mal damit aber du darfst keine index.html oder main-datei auf dem alten server haben.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule /* https://ssl.kundenserver.de/secure.domain.com [R,L]
Gruss vom Alain