.htaccess && apache2.4

  • Thread starter Thread starter Deleted member 14254
  • Start date Start date


D

Deleted member 14254

Guest
Guten Morgen liebe Gemeinde,

ich wollte fragen, ob IHR vielleicht schon dahintergekommen seid, wie die für Apache2.2 entsprechende Zeile in einer .htaccess-Datei

Code:
Allow from xx.xx.xx.xx

bei Apache2.4 lauten muss?!

Weil: Ich sperre gerne Admin-Backends per .htaccess vor öffentlichem Zugriff und irgendwie scheint das in sämtlichen Apache-Handbüchern beschriebene (neue 'mod_authz_host') nicht richtig zu arbeiten

Code:
Require host xxx
...bzw...
Code:
Require ip usw. usw.
bringt im error_log von apache den Fehler, das Require nicht in .htaccess zu benutzen sei... In den "normalen" Serverconfigs funktioniert die Direktive 'Require' jedoch problemlos.

Also ich habe irgendein Modul entweder nicht geladen (was ich aber ganz unwahrscheinlich finde, da ich die geladenen Module mehrfach überprüft hatte) - oder, Require ist keine gültige Option in den .htaccess-Files mehr :/// Dann wär ich allerdings ziemlich untröstlich - ehrlich gesagt.

Vielen Dank schonmal :o
 
Last edited by a moderator:
Code:
Order allow,deny
Allow from x.x.x.x
Deny from all
So eventuell?
 
Eventuell mußt Du nochmal sicherstellen, daß für das Verzeichnis in dem Deine .htaccess Datei liegt auch "AllowOverride AuthConfig" gilt, da sich der Standardwert mit Apache 2.4.x geändert hat.
 
Moin Moin :)

Also so (ähnlich aber umgekehrt) hatte ich es bis jetzt ja auch (wie Fusl schreibt):

Code:
Order allow,deny
Allow from x.x.x.x
Deny from all

Ich hatte:

Code:
Order deny,allow
Deny from all
Allow from 'bestimmte ip'

Nur dann bekomme ich den Hinweis, das Allow in der .htaccess - Datei nicht stehen dürfe. Es sei kein gültiger Ausdruck.

Eben aus diesem Grund hatte ich es ja auch entsprechend für die neuen module in apache2.4 geändert:

Anstatt:

Code:
Allow from 'bestimmte ip'

Code:
Require ip 'bestimmte ip'

Dies funktioniert auch, aber halt NUR DANN, wenn ich es in der Server-Config-Datei selbst benutze. NICHT aber in einer .htaccess-Datei.
Dies ist aber sehr wichtig, weil ich ebend mit dieser .htaccess in den betr. Admin-Ordnern den Zugang einschränken kann.

@dotme,

Das ist schon klar, ich hatte die Overrides für die IP-eingeschränkten Verzeichnisse in den Server-configs mit "AllowOverride FileInfo Limit" eingeschränkt. Die anderen, die Passwort erfordern (Download-vhosts beispielsweise) per "AllowOverride AuthConfig".

Nur das geht halt nicht, da die .htaccess-Dateien ja ein
Code:
'Allow from 'ip'
- bzw. ein
Code:
Require ip ip-adress"
enthalten müssen, um halt wirksam zu werden. Doch dort werden dann "Allow from..." sowie "Require ip..." als ungültig von Apache zurückgewiesen...

Heute sah ich dann: Gentoo hat apache zurückportiert. Die neueste stable ist wieder 2.2.24

Randbemerkung: 'Ich wußte, das mit dem 'Hund' was nicht stimmt...' ;)

@JoeUser,
Danke für die Anleitung, aber die hab ich gestern echt fast auswendig gelernt... Sage und schreibe, 8h daran gesessen, vhost-configs in alle Himmerlrichtungen geändert und ausgetestet. Solange ich nicht .htaccess benutzte, was alles ok... Versuche es gleich nochmal, aber Allow, sowie Require udgl. werden von apache2.4 (auch wenn es die Anleitung halt anders sagt) in keiner .htaccess akzeptiert :mad:
 
Last edited by a moderator:
Das ist schon klar, ich hatte die Overrides für die IP-eingeschränkten Verzeichnisse in den Server-configs mit "AllowOverride FileInfo Limit" eingeschränkt. Die anderen, die Passwort erfordern (Download-vhosts beispielsweise) per "AllowOverride AuthConfig".
Require wird durch mod_authz_core bereitgestellt, daher benötigt es "AllowOverride AuthConfig", zudem müssen bei Deinem Vorhaben mindestens mod_authn_core, mod_authz_core, mod_authn_file und mod_authz_host geladen sein. Dann sollte es eigentlich funktionieren.
Auf Allow/Deny sollte ab Apache 2.4 generell verzichtet werden, auch wenn mod_access_compat verlockend wirkt.

Im ErrorLog sollte Dir ansonsten gemeldet werden, wo der Fehler genau liegt.
 
Hallo Joe,

Danke nochmal für Deine Rückmeldung. Da hast Du Recht, ich wollte auch daher direkt mit meinen vhost-configs auf "neuen" Apache-Standard, also dem der 2.4-er Version übergehen. In dem von Dir genannten HowTo:

Joe-User said:

steht ja auch ziemlich oben:

The Allow, Deny, and Order directives, provided by mod_access_compat, are deprecated and will go away in a future version. You should avoid using them, and avoid outdated tutorials recommending their use.

Ich habs jetzt so gelöst, den "Kladeradatsch" aus den .htaccess-Dateien in den betr. Unterordnern von /var/www/... also deren der einzelnen Websites mit in die vhost-Haupt-Configs unter /etc/apache2/vhosts.d unterzubringen. War mir, wenn ich ehrlich bin, auch lieber, weil ich noch wo auf den neuen Apache2.4-Seiten gelesen hatte, das man - nach Möglichkeit - auf .htaccess-Dateien verzichten solle, weil es die Serverperformance ein wenig "runterzieht". Aufgrunddessen, das bei jedem Websitenaufruf die .htaccess-dateien neueingelesen werden, was, wenn die Informationen DIREKT aus der Hauptconfig kommen, nicht der Fall ist, weil Apache diese ja schon bei dessen Start einliest.

Jetzt gehts aber wenigstens schonmal wieder. Paarstunden Arbeit, paar Flüche, - vor allem gestern - :o - aber nun gehts.

PS. haben was gemeinsam: solche "compat"-Lösungen gefallen uns beiden nicht ;) Da hab ich immer das Gefühl, mich vor Problemen zu drücken :o
 
Last edited by a moderator:
Back
Top