Zur Navigation

In .htaccess Datei und Ordner von Regeln ausschließen

1 derilzemer

Hallo,
ich bin neu im Forum, habe nicht die Erfahrung was htaccess angeht, benötige sie aber jetzt in einem privaten Projekt. So sieht die htaccess Datei aktuell aus:

#.htaccess-Datei fuer Web-Verzeichnis 
# Aktivieren der Bedingung
Options +MultiViews
Options -Indexes

AuthType Basic
AuthName "Bitte durch User & Passwort legitimieren"
AuthUserFile /home/ich/portal/.htusers
AuthGroupFile /home/ich/portal/.htgroups
Require valid-user
Require group public

Grundsätzlich funktioniert die htaccess Datei. Jetzt habe ich noch das Problem, dass ich die index.html von der Regel in htaccess ausgenommen sein muss, ebenso wie die Verzeichnisse css, Demoportal und SW.
In einem anderen Beitrag hier im Forum (.htaccess Ordner von regeln ausschließen) habe ich gesehen, dass man die Verzeichnisse insofern ausschließen kann, indem man in den Verzeichnissen eine eigenen htaccess Datei hinterlegt, die wohl so aussehen sollte:

#.htaccess-Datei fuer Verzeichnis-Ausnahmen im Web-Verzeichnis

RewriteEngine off

Aber mit der Datei, da finde ich nichts, was ich "nachvollziehen" bzw. verstehe, wie ich das zu machen habe. Wer kann mir da weiterhelfen?

Vielen Dank vorab
Andreas

14.03.2018 18:17

2 Jörg Kruse

RewriteEngine off

Diese Direktive deaktiviert mod_rewrite. In deiner .htaccess Datei sehe ich allerdings keinen mod_rewrite Code?

Oder geht es dir darum, dass der Zugriffsschutz aufgehoben wird? das könnte man durch diese Direktive erreichen:

Require all granted

Eine einzelne Datei könnte man möglicherweise in einem entsprechenden Files-Container vom Zugriffsschutz ausschließen (ungetestet):

<Files "index.html">
Require all granted
</Files>

Das gilt dann allerdings für alle Dateien mit dem Namen index.html

14.03.2018 19:34 | geändert: 14.03.2018 19:35

3 derilzemer

Hallo Jörg,
danke für die schnelle Antwort. Ich sagte ja, das ist schon drin, dass es möglich etwas "falsch" konfiguriert zu haben. Ich wusste nicht, dass RewriteEngine off nur "zieht", wenn man es auch in der Haupt htaccess aktiviert hat :-(. Für die Verzeichnisse, wo ich den Schutz aufheben will, muss die htaccess Datei also wie folgt aussehen (welche ich dann in diesen Verzeichnissen ablege)
#.htaccess-Datei fuer Verzeichnis-Ausnahmen im Web-Verzeichnis

Require all granted

Und in der htaccess, welche den Schutz aufstellt, dann nur als Zusatz

<Files "index.html">
Require all granted
</Files>

Ich hatte das mit wohl einem alten Codeschnipsel versucht

<Files "index.html">
  Allow from all
  Satisfy any
</Files>

Das hat aber nicht funktioniert. Ich teste nachher mal drauf los, wenn nicht melde ich mich noch mal.

Besten Dank vorab
Andreas

14.03.2018 20:05

4 Jörg Kruse

Ich wusste nicht, dass RewriteEngine off nur "zieht", wenn man es auch in der Haupt htaccess aktiviert hat :-(.

Naja, es "zieht" schon, allerdings gibt es in deinem Code keine mod_rewrite Direktiven, die dadurch deaktiviert würden, sondern Direktiven, die stattdessen zum Modul mod_auth gehören.

Ich hatte das mit wohl einem alten Codeschnipsel versucht

<Files "index.html">
  Allow from all
  Satisfy any
</Files>

Das hat aber nicht funktioniert.

Das ist noch die alte Syntax unter Apache 2.2. "Require valid-user" etc. ist schon Apache 2.4

14.03.2018 20:12 | geändert: 14.03.2018 21:47

5 derilzemer

Hallo,
ich habe leider nur Apache 2.2. Bedeutet das, dass der Code dann nicht funktioniert?
Gruß Andreas

14.03.2018 21:23

6 Jörg Kruse

Da war ich irgendwie nicht ganz bei der Sache und habe weiter oben teilweise Unsinn geschrieben :-/

Für Apache 2.2 sollte das funktionieren:

Satisfy Any
Allow from all

... von daher eigentlich auch:

<Files "index.html">
  Allow from all
  Satisfy any
</Files>

Die index.html ist als Index-Datei ein Spezialfall. Funktioniert der Code denn mit einer anderen Datei, z.b. test.html?

14.03.2018 21:46

7 derilzemer

Hallo Jörg,
es hat funktioniert. Ich habe aber jetzt ein wenig umgebaut. Die Dateien, welche ich nicht schützen muss/will, habe ich einfach in der Verzeichnisstruktur eine Ebene nach oben gehievt. Damit ist der Drops gelutscht.
Ich habe die Domain im Zuge dessen auch gleich auf ssl umgestellt. Mein Provider hat mir noch folgenden Schnipsel gegeben, welcher http auf https umleitet. Kann ich den in der htaccess platzieren wo ich will, oder macht man den in der Regel on top der htaccess Datei?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} derilzemer\.de$ [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Den Schnipsel selbst verstehe ich nicht wirklich. derilzemer.de ist die Hauptdomain, welche aber aktuell NICHT in Nutzung ist. Die htaccess Datei liegt in einer Subdoamin, deswegen bin ich überrascht, dass da derilzemer.de drin vorkommt. Die Subdomain ist quartettportal.de.

Gruß Andreas

15.03.2018 21:10

8 Jörg Kruse

Da fehlt noch ein Umbruch:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} derilzemer\.de$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Die zweite Bedingung (RewriteCond ) besagt, dass die folgende Regel auf Domains Anwendung findet, die auf derilzemer.de enden. Das schließt also www.derilzemer.de oder subdomain.derilzemer.de mit ein. Nicht jedoch quartettportal.de

Das SSL-Zertifikat ist anscheinend nur für quartettportal.de und www.quartettportal.de ausgestellt, entsprechend würde ich als zweite Bedingung stattdessen verwenden:

RewriteCond %{HTTP_HOST} ^(www\.)quartettportal\.de$ [NC]

Kann ich den in der htaccess platzieren wo ich will, oder macht man den in der Regel on top der htaccess Datei?

Soweit wie möglich oben

15.03.2018 21:44 | geändert: 15.03.2018 21:45

1 Forenmitglied fand diesen Beitrag gut

9 derilzemer

Hallo Jörg,
Zitat von Jörg

Die zweite Bedingung (RewriteCond ) besagt, dass die folgende Regel auf Domains Anwendung findet, die auf derilzemer.de enden. Das schließt also www.derilzemer.de oder subdomain.derilzemer.de mit ein. Nicht jedoch quartettportal.de

Das SSL-Zertifikat ist anscheinend nur für quartettportal.de und www.quartettportal.de ausgestellt, entsprechend würde ich als zweite Bedingung stattdessen verwenden:

RewriteCond %{HTTP_HOST} ^(www\.)quartettportal\.de$ [NC]

Dachte ich es mir doch fast, dass hier noch was schief hängt. Vielen Dank für die Unterstützung. Einen Thread muss man hier nicht als erledigt markieren, oder habe ich es übersehen?
Gruß Andreas

15.03.2018 22:08

10 Jörg Kruse

Einen Thread muss man hier nicht als erledigt markieren, oder habe ich es übersehen?

So eine Funktion hat das Forum leider nicht (müsste ich vielleicht mal einbauen)

16.03.2018 09:57

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]