Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
20.01.2005, 21:31
thinktank



Hi,

Ich versuche schon seit längerem folgendes zu realisieren:

Ich habe eine Seite und ich will sie mit .htaccess beschränkt schützen. Beschränkt heißt, dass User noch in der Lage sein sollen, sich zu registrieren. Dafür benutzte ich eine .htaccess, aber ich komme anscheinend nicht mit RegExp klar. Es sollen alle Dateien außer nen paar gesperrt sein (also nicht deny, sondern require, was das ganze schwieriger macht). Hier die Datei:

Quellcode:<FilesMatch "[^\Bindex.html\b]|[^\blogo.gif\b]|[^\bregister.php\b]|[^\bstylesheet.css\b]">
AuthType Basic
AuthName "blub"
AuthUserFile blubblub
require valid-user
</FilesMatch>
Ich will alles durchlassen außer eben die oben stehenden Dateien. Ich hoffe es wurde deutlich, was ich will. Ich bräuchte praktisch ein FilesNotMatch ;) Die Lösung, dass ich die ganze Seite in einen neuen Ordner packe (wie ./intern/ oso), fände ich nicht so schön, da der Ordner die ganze Zeit in der URL auftauchen würde.

Dankeschön,
cu,
thinktank

--

zum Seitenanfang zum Seitenende Profil || Suche
001
21.01.2005, 18:07
theDon



eventuell solltest du dich mal ueber regexp-syntax informieren. das da oben matcht so ca alles, nur nicht das, was du willst.

hint: lookahead.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
002
21.01.2005, 21:28
thinktank



Danke für den Tipp, aber langsam zweifle ich daran, dass es überhaupt funktioniert.
Ein Problem hab ich zwar mit dem lookahead lösen können (er sucht jetzt nach dem String "logo.gif" und nicht nach "l", "o", "k", "g" etc.), aber zu dem anderen Problem hab ich nichts finden können.

Das Ganze auf seinen Kern reduziert:

Ich habe einen string "index.php" und will, dass ein "Match" herauskommt, weil der string ungleich "index.html" ist.

Wenn es irgendwie ginge, würde ich ein "!" oder "NOT" davor setzen und die Sache wäre gegessen, aber das gibts ja anscheinend bei Apache nicht :(

--

zum Seitenanfang zum Seitenende Profil || Suche
003
22.01.2005, 00:49
theDon



es gibt negative lookaheads (`?!').

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
004
22.01.2005, 13:42
thinktank



Ok, die habe ich auch schon ausprobiert, aber noch nicht in PHP. Der Ausdruck

Quellcode:^(?!index.html)
funktioniert komischerweise nur mit preg_match() korrekt, aber nicht in der .htaccess mit
Quellcode:<FilesMatch "^(?!index.html)">
Woran könnte das liegen?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
22.01.2005, 18:22
HammerBlade



Vieleiclht benutzten PHP und Apache verschiedene RegEx-Systeme, denn Lookahead/Lookbehind wird nicht von allen unterstützt.

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way


Dieser Beitrag wurde am 22.01.2005 um 18:22 von HammerBlade bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
22.01.2005, 18:51
theDon



anderer vorschlag:

Quellcode:AuthType Basic
AuthName "blub"
AuthUserFile blubblub
Require valid-user
<FilesMatch "(index.html|stylesheet.css)">
Allow from All
Satisfy Any
</FilesMatch>

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
007
22.01.2005, 19:40
thinktank



Die Idee hab ich auch schon ausprobiert, aber ich hatte kein "Satisfy Any" dabei *doh*, d.h. ohne "Satisfy Any" führt er trotzdem "require valid-user" aus. Beschreibung á masse unter google. Danke für die schnellen Antworten ... jetzt weiß ich viel mehr über regexps und .htaccess \o/

--

zum Seitenanfang zum Seitenende Profil || Suche
008
23.01.2005, 01:52
thinktank



(edit-limit überschritten)

*grml* alles geht nur ausser diesem Fall:
ich greife auf '/' zu, also wenn ich "www.blubblub.de" (nur nen Beispiel ...) in die Adresszeile eingebe. <Directory> geht ja leider nicht in den .htaccess. <Files />, <Files ""> oder<FilesMatch .> auch nicht =/ Eigentlich dumm, weil er ja automatisch auf index.html zugreift ...

--

zum Seitenanfang zum Seitenende Profil || Suche
009
23.01.2005, 04:52
theDon



Quellcode:<FilesMatch "^$"> evtl?

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
010
28.01.2005, 18:32
thinktank



Nein, das konnte das Prob auch nicht lösen :( Ich hab jetzt auch mit dem Support geredet und auch DirectoryIndex und ein RewriteEngine probiert, aber brachte auch nichts. Jetzt muss ichs wohl mit dem Ordner machen. Die einzige Lösung (alle Dateien, die zugriffsgeschützt sein soll per require valid-user einzutragen) ist mir dann doch zu umständlich.

Danke für eure Hilfe,
thinktank

--

zum Seitenanfang zum Seitenende Profil || Suche