In htaccess Datei - wo ist der Fehler!


Guri

Mitglied
Hallo Leute,

bei Code in htaccess kommt ein Fehler, ist volgenes Code:
Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de
RewriteRule ^$ http://www.domain.de/ordner/

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteCond %{REQUEST_URI} !^/ordner/
RewriteRule ^(.*)$ /ordner/$1

ich versuche zu erklären, was ich ereichen will:
wenn man aufruft die Doamin sollte in ein bestimmte ordner springen z.B.: ordner,
wenn man ein andere ordner aufruft, soll es verhindern in einen anderen verzeichnis Datein zu ausführen,
soll nur die Datein in verzeichnis ordner erlauben zu ausführen,

ich dachte kann mit obren Code lösen, aber irgend wie kommt ein fehler, so:
Not Found
The requested URL /ordner//ordner/ was not found on this server.

so viel ich sehe diu url ist so:

wie mache ich richtig,
ich bedanke mich in Voraus für jede hilfe, viele Grüße Guri.
 

sheel

I love Asm
Hi

a) was genau rufst du auf?
b) Warum willst du Zugangsbeschränkungen per Rewrite machen?
c) Geht es nur darum, PHP usw. nicht ausführbar zu haben, oder ist gar kein Zugriff erlaubt (auch keine Bilder usw.)?
 

Guri

Mitglied
Hallo,

a). Ich rufe die unterordner z.B.: ordner an, und dort greifft automatisch auf eine index.html oder index.php wo dort befinden,

b). Weil habe mehrere domains als alias doamin, die domain greifen selbern weg,
wenn man ruft die doamin1.de/ordner1/ soll auch hier bleiben,
wenn man ruft die doamin2.de/ordner2/ soll auch hier bleben,
und nicht doamin1 mit oderner2 oder andersrum,

c). Wie oben beschrieben habe kommt ein fehler meldung
Not Found
The requested URL /ordner//ordner/ was not found on this server.
es greif nicht mal auf index.html oder index.php beide sind drin.

wenn die Code hier lösche:
Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteCond %{REQUEST_URI} !^/ordner/
RewriteRule ^(.*)$ /ordner/$1
dann geht, kommt keine fehler, aber greift wie in orden1 genauso auch aud die ordner2,
und das will ich verhindern dass doamin1 mit ordner1 und domain2 mit oedner2 und soweiter.
 

Guri

Mitglied
He he he, soll es so sein:

Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteCond %{REQUEST_URI} !^/ordner/$
RewriteRule ^(.*)$ /ordner/$1
 

SpiceLab

ZENmechanic
Da der Server zwei (von mir rotmarkierten) Slashes im URL abbildet/zeigt
Not Found
The requested URL /ordner//ordner/ was not found on this server.
die die Ursache dieses 404-Errors sind, ist folglich einer von beiden in Deinem Code falsch (überflüssig) gesetzt.

[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:

Guri

Mitglied
Ich habe von anfang gesagt, da ist ein Fehler, die Server findet nicht den ordner, und erzeugt zusezlich ein ordner /ordner/,
warum kommt noch ein zusetzliche ordner, dass rot markirte ordner /ordner//ordner/, mit oberen Code zeigt so: domain.de/ordner//ordner/, es sollte so sein domain.de/ordner/,
irgend wo in disen Code ist eine Fehler, aber wo:
Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de
RewriteRule ^$ http://www.domain.de/ordner/

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteCond %{REQUEST_URI} !^/ordner/
RewriteRule ^(.*)$ /ordner/$1
 

SpiceLab

ZENmechanic
Zu Beginn leitest Du alle Anfragen von www.domain.de auf das Unterverzeichnis /ordner/ um.

In der zweiten Condition soll auf /ordner/ umgeleitet werden, wenn der angefragte URI /ordner/ nicht enthält, was zur Folge hat, dass diese Regel die erste erweitert, und /ordner//ordner/ zur Folge hat.

Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.de [NC]
RewriteCond %{REQUEST_URI} !^/ordner/.*$
RewriteRule ^(.*)$ /ordner/$1 [R=301]
oder
Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.de [NC]
RewriteCond %{REQUEST_URI} !^/ordner/$
RewriteRule ^$ /ordner/ [R=301]
Übrigens genügt es, RewriteEngine On einmal zu Beginn in .htaccess zu aktivieren. Es sei denn, im weiteren Verlauf taucht RewriteEngine Off auf.

[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:

Guri

Mitglied
Hallo und vielen Dank für die Mühe,

mit beide deine Codes wird schlimmer, kommt ein unendliche schleife so:
doamin.de/ordner/ordner/ordner/ordner/ordner/ordner/ordner/.......,
bis die Server automatisch bricht,

ich lasse so wie es wahr nur mit disem Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de
RewriteRule ^$ http://www.domain.de/ordner/

und disen Code untern lass ich weg,
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteCond %{REQUEST_URI} !^/ordner/
RewriteRule ^(.*)$ /ordner/$1

ich bedanke mich für eure Hilfe, viele Grüße Guri.
 

SpiceLab

ZENmechanic
Hallo und vielen Dank für die Mühe,

mit beide deine Codes wird schlimmer, kommt ein unendliche schleife so:
doamin.de/ordner/ordner/ordner/ordner/ordner/ordner/ordner/.......,
bis die Server automatisch bricht,
An meinen beiden Vorschlägen, die nicht zusammen zum Einsatz kommen-!!!-, kann es nicht liegen: http://hosttown.ch/knowledgebase/htaccess-weiterleitung-auf-unterverzeichnis/

Von daher wird wohl in Deiner .htaccess-Datei und/oder der übrigen Serverkonfiguration ein Konfliktpotenzial stecken, das wir nicht kennen :rolleyes:

[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:

SpiceLab

ZENmechanic
Hallo und vielen Dank für die Mühe,

mit beide deine Codes wird schlimmer, kommt ein unendliche schleife so:
doamin.de/ordner/ordner/ordner/ordner/ordner/ordner/ordner/.......,
bis die Server automatisch bricht,
An meinen beiden Vorschlägen, die nicht zusammen zum Einsatz kommen-!!!-, kann es nicht liegen: http://hosttown.ch/knowledgebase/htaccess-weiterleitung-auf-unterverzeichnis/

Von daher wird wohl in Deiner .htaccess-Datei und/oder der übrigen Serverkonfiguration ein Konfliktpotenzial stecken, das wir nicht kennen :rolleyes:
Da mir heute morgen die Zeit fehlte, nach Deinem Feedback die beiden Codesnippets (~ 5:30h beim ersten Kaffee produziert), auf ihre praktische Tauglichkeit hin gegenzuprüfen, ob sich vllt. ein (Syntax)Fehler eingeschlichen hat, konnte ich das jetzt nachholen, und muss Dich leider auf meinen letzten Beitrag verweisen, denn

beide Varianten leiten mich nicht in einen Kreisverkehr (Schleife, Loop) um!

Je nachdem, ob www. im URL enthalten sein darf/kann, oder ob eines von beiden mit einer RewriteCond/-Rule erzwungen wird, habe ich die erste RewriteCond entsprechend ergänzt (wird in meinem zuletzt empfohlenen Link auch im zweiten Beispiel für "Spezifische Domain weiterleiten" demonstriert):
Code:
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.de [NC] # NC = unabhängig, ob Groß- o. Kleinschreibung, no case sensitive
Diese beiden Anfragen werden von ihnen wie gewünscht umgeschrieben/weitergeleitet:

http://domain.de -> http://domain.de/ordner/
http://www.domain.de
-> http://www.domain.de/ordner/

[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:

Guri

Mitglied
Hallo, vielen Dank für deine Mühe, aber es klappt nicht wie ich es will, warum ich habe keine ahnun, ich teste es in eine echten Server und nicht Local,

kuck mal die Bilder schritt für schritt, die Benuzername IP und Domainname wie in URL genau so in Admin-Server habe ich radiert,


hier die Admin-Server aussicht mit ordner und daten struktur



hier die Code:



hier die seite wenn man aufruft springt genau wie es soll, so: domain1.de/ordner1/



hier ist das Problem wenn man ordner1 wechselt auf ordner2, so: domain1.de/ordner2/



hier sollte nicht zu lassen, es sollte auf ordner1 bleiben, statt das komt ein Fehlermeldung und eine unendliche schleiffe bis Server automatisch abbricht, so: domain1.de/ordner1/ordner1/ordner1/ordner1/ordner1/ .....,

was hier los ist, keine ahnung, oder ligt an Code oder an Server, Grüß Guri.
 

Anhänge

  • Beispiel1-1.png
    Beispiel1-1.png
    170,2 KB · Aufrufe: 5
  • Beispiel1-2.png
    Beispiel1-2.png
    154,3 KB · Aufrufe: 4
  • Beispiel1-3.png
    Beispiel1-3.png
    53,3 KB · Aufrufe: 3
  • Beispiel1-4.png
    Beispiel1-4.png
    64,5 KB · Aufrufe: 4
Zuletzt bearbeitet von einem Moderator:

SpiceLab

ZENmechanic
ich teste es in eine echten Server und nicht Local,
Ich hab es lokal (XAMPP) und unter meiner eigenen Domain im Netz überprüft.

Mit Deinen angehängten Bildern kann man nichts anfangen - im Beitrag zu klein, um darauf was erkennen zu können, und beim Klick darauf, um sie vergrößert zu sehen, gibt's vom System eine Fehlermeldung zurück:
tutorials.de hat gesagt.:
tutorials.de - User helfen Usern - Fehler
Der gesuchte Anhang konnte nicht gefunden werden.
Wie schon gestern festgehalten, wird die Ursache in der vollständigen .htaccess-Datei, oder in der übrigen Serverkonfiguration, oder in der Kombination von beidem liegen.

Aber da Du Dich gestern morgen für eine lauffähige Alternative entschieden hast, wollen wir es dabei belassen :)

Ich wollte gestern auch nur klarstellen, dass meine Codesnippets grundsätzlich funktionieren.

Zukünftige Hilfesuchende sollen hier auch nicht einem Irrglauben aufsitzen.
 

SpiceLab

ZENmechanic
Was mir in der .htaccess-Datei direkt ins Auge sticht:
  1. Zeilen 1 u. 10: RewriteEngine on wird nur einmal zu Beginn der .htaccess-Datei deklariert, um das mod_rewrite-Modul zu starten.
  2. Zeile 3: Mehrere Flags werden in einer eckigen Klammer notiert, und darin durch Kommatas getrennt.
  3. Am Ende von Zeile 3 beginnt direkt die nächste RewriteCond, und wird in Zeile 4 fortgesetzt. Bitte zu Beginn der nächsten Zeile (4) notieren.
  4. Zeilen 5 u. 8: [L]= Mit der "Last"-Option wird der Server veranlasst, nach dieser RewriteRule keine weitere mehr auszuführen.
  5. Wenn Du meinen Codesnippet (ab Zeile 11) testen willst, ohne das Resultat zu verfälschen, solltest Du auch Deine bestehende Umleitung (Zeile 7-8) auskommentieren, und in Zeile 13 noch den fehlenden Flag [R=301] anhängen.
Vielleicht in einer ruhigen Minute nochmal Grundlagenwissen auffrischen/tanken:
  1. https://wiki.selfhtml.org/wiki/Webserver/Serverkonfiguration:_Aliasing_von_Webverzeichnissen - Vielleicht von Interesse wegen
    Weil habe mehrere domains als alias doamin, die domain greifen selbern weg,
  2. https://wiki.selfhtml.org/wiki/Webserver/mod_rewrite

[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet: