htaccess Zugriff für alle
![](/uploads/default_avatar/thumb/missing.png)
- webserver
0 ChrisB0 johny7
0 ChrisB0 johny7
0 ChrisB0 johny7
0 ChrisB0 johny7
0 Edgar Ehritt0 johny7
0 Der Martin
1 Edgar Ehritt0 ChrisB
Moin allerseits,
ich habe für ein Verzeichnis den Zugriff per htaccess für lediglich ausgewählte Benutzer erlaubt. Nun habe ich dort ein Unterverzeichnis "public". Kann ich für dieses Verzeichnis die Beschränkung per htaccess-Datei aufheben, so dass jeder ohne Passwortabfrage darauf zugreifen kann?
Grüße, JN
Hi,
ich habe für ein Verzeichnis den Zugriff per htaccess für lediglich ausgewählte Benutzer erlaubt. Nun habe ich dort ein Unterverzeichnis "public". Kann ich für dieses Verzeichnis die Beschränkung per htaccess-Datei aufheben, so dass jeder ohne Passwortabfrage darauf zugreifen kann?
Ja, mit einer geeigneten Kombination von Allow/Require und Satisfy.
MfG ChrisB
Moin allerseits,
Ja, mit einer geeigneten Kombination von Allow/Require und Satisfy.
Allow All
?
Grüße, JN
Hi,
Ja, mit einer geeigneten Kombination von Allow/Require und Satisfy.
Allow All
?
Erfolg
Fragezeichen
Manual gelesen bzgl. der genannten Stichwörter?
MfG ChrisB
Moin allerseits,
Erfolg
FragezeichenManual gelesen bzgl. der genannten Stichwörter?
MfG ChrisB
Irgendwie komme ich nicht weiter. Das Web danach durchsucht - erfolgslos.
Im Verzeichnis redaktion habe ich den Zugriff beschränkt über require group etc. Im Unterverzeichnis public habe ich schon alles Kombinationen ausprobiert:
allow from all => 500
require all => Anmelde-Dialog
Ich will keinen Anmeldedialog, sondern dass jeder einfach auf die Dateien unter public zugreifen kann.
Grüße, JN
Hi,
Manual gelesen bzgl. der genannten Stichwörter?
Irgendwie komme ich nicht weiter. Das Web danach durchsucht - erfolgslos.
Ich fragte nicht, ob du im Web gesucht hast, sondern ob du im Manual nachgelesen hast.
Im Unterverzeichnis public habe ich schon alles Kombinationen ausprobiert:
allow from all => 500
Wenn du keinen Schreibfehler gemacht hast, dann fehlt dir wohl die Berechtigung, Allow zu nutzen.
MfG ChrisB
Moin allerseits,
Hi,
Manual gelesen bzgl. der genannten Stichwörter?
Irgendwie komme ich nicht weiter. Das Web danach durchsucht - erfolgslos.
Ich fragte nicht, ob du im Web gesucht hast, sondern ob du im Manual nachgelesen hast.
Entschuldige die dumme Frage: Welches Manual? Die eine Seite von SelfHTML habe ich schon in allen Richtungen durchforstet.
Im Unterverzeichnis public habe ich schon alles Kombinationen ausprobiert:
allow from all => 500Wenn du keinen Schreibfehler gemacht hast, dann fehlt dir wohl die Berechtigung, Allow zu nutzen.
Aber ist allow nicht dazu da, ip-Bereiche aus zu schließen oder zu erlauben? Oder heißt
order deny, allow
allow from all
wirklich, die Beschränkungen der Elternverzeichnisse werden aufgehoben?
Kann ich dann nicht in der .htaccess im Elternverzeichnis public von meiner Bedingung ausnehmen?
Grüße, JN
Hi,
Entschuldige die dumme Frage: Welches Manual?
Das des Apache-Webservers natürlich.
http://httpd.apache.org/docs/
Wenn du keinen Schreibfehler gemacht hast, dann fehlt dir wohl die Berechtigung, Allow zu nutzen.
Aber ist allow nicht dazu da, ip-Bereiche aus zu schließen oder zu erlauben?
Wieso „aber“?
Oder heißt
order deny, allow
allow from allwirklich, die Beschränkungen der Elternverzeichnisse werden aufgehoben?
Was es bedeutet, erklärt das Manual.
MfG ChrisB
Moin allerseits,
Was es bedeutet, erklärt das Manual.
Im Manual steht nicht wesentlich mehr, als in SelfHTML. Kannst du mir den konkreten Link geben, wo du diese Information zu sehen meinst? Ich habe alles durchsucht, aber nichts gefunden, was in meinem Fall weiterhilft.
Oder kannst du die Lösung gleich mit aus dem Ärmel schütteln?
Grüße, JN
Hallo,
Im Manual steht nicht wesentlich mehr, als in SelfHTML. Kannst du mir den konkreten Link geben, wo du diese Information zu sehen meinst? Ich habe alles durchsucht, aber nichts gefunden, was in meinem Fall weiterhilft.
Oder kannst du die Lösung gleich mit aus dem Ärmel schütteln?
nachdem Dein Problem trotz all dem hin und her immer noch nicht nachvollziehbar aufbereitet ist, kopiere bitte den Inhalt Deiner beiden .htaccess-Dateien hier!
Gruß aus Berlin!
eddi
Moin allerseits,
nachdem Dein Problem trotz all dem hin und her immer noch nicht nachvollziehbar aufbereitet ist, kopiere bitte den Inhalt Deiner beiden .htaccess-Dateien hier!
Ich habe folgende Verzeichnisstruktur:
/
/redaktion/
/redaktion/public/
Die .htaccess im Verzeichnis redaktion sieht folgendermaßen aus:
# .htaccess-Datei für redaktion
AuthType Basic
AuthName "Redaktion"
AuthUserFile /users/example/www/security/.htusers
AuthGroupFile /users/example/www/security/.htgroups
Require group Redaktion
Wie soll nun die .htaccess in public aussehen, wenn dort Grafiken abgelegt werden, die von jedem per <img /> ohne Auftauchen der Passwortabfrage aufgerufen werden können sollen.
Im Moment habe ich das einfach so gelöst, dass /redaktion/ ungeschützt ist und die Unterverzeichnisse (außer /public/) geschützt.
Aber es muss doch auch anders gehen. Ich habe jetzt schon das Manual durchforstet, anonymous und andere Varianten probiert, bin aber noch nicht zur Lösung gekommen.
Grüße, JN
Hi,
Wie soll nun die .htaccess in public aussehen, wenn dort Grafiken abgelegt werden, die von jedem per <img /> ohne Auftauchen der Passwortabfrage aufgerufen werden können sollen.
Das beschrieb ich bereits im groben, und auch bzgl. Sastisfy findet sich im Manual ein Beispiel, das sich entsprechend abwandeln lässt.
Aber es muss doch auch anders gehen. Ich habe jetzt schon das Manual durchforstet, anonymous und andere Varianten probiert, bin aber noch nicht zur Lösung gekommen.
Wie gesagt, wenn dir zur Nuztung von Allow in .htaccess-Dateien die Berechtigung fehlt, dann geht's so für dich nicht.
MfG ChrisB
Moin allerseits,
Das beschrieb ich bereits im groben, und auch bzgl. Sastisfy findet sich im Manual ein Beispiel, das sich entsprechend abwandeln lässt.
Endlich habe ich's kapiert. Es hat sogar geklappt.
Grüße, JN
Hallo,
Im Unterverzeichnis public habe ich schon alles Kombinationen ausprobiert:
allow from all => 500
Wenn du keinen Schreibfehler gemacht hast, ...
hat er wohl, wenn er das wirklich so in der .htaccess stehen hat.
Die Welt ist case sensitive. Apache auch. ;-)
So long,
Martin
Hallo Martin,
Die Welt ist case sensitive.
dieser Blödsinn ist zwar immer wieder hier im Forum zu lesen, entspricht aber keinesfalls der Wahrheit. Ein Blick in die Sourcen Apaches bestätigt auch die üblichen Erfahrungen mit der Konfiguration.
Auffinden von Direktiven (/server/config.c):
AP_CORE_DECLARE(const command_rec *) ap_find_command(const char *name,
const command_rec *cmds)
{
while (cmds->name) {
if (!strcasecmp(name, cmds->name))
return cmds;
++cmds;
}
return NULL;
}
Direktivendeklaration (ab hier aus /modules/aaa/authz_host.c):
static const command_rec authz_host_cmds[] =
{
AP_INIT_TAKE1("order", order, NULL, OR_LIMIT,
"'allow,deny', 'deny,allow', or 'mutual-failure'"),
AP_INIT_ITERATE2("allow", allow_cmd, &its_an_allow, OR_LIMIT,
"'from' followed by hostnames or IP-address wildcards"),
AP_INIT_ITERATE2("deny", allow_cmd, NULL, OR_LIMIT,
"'from' followed by hostnames or IP-address wildcards"),
{NULL}
};
Die Werte der Direktive Allow:
static const char *allow_cmd(cmd_parms *cmd, void *dv, const char *from,
const char *where_c)
{
authz_host_dir_conf *d = (authz_host_dir_conf *) dv;
allowdeny *a;
char *where = apr_pstrdup(cmd->pool, where_c);
char *s;
char msgbuf[120];
apr_status_t rv;
if (strcasecmp(from, "from"))
return "allow and deny must be followed by 'from'";
a = (allowdeny *) apr_array_push(cmd->info ? d->allows : d->denys);
a->x.from = where;
a->limited = cmd->limited;
if (!strncasecmp(where, "env=!", 5)) {
a->type = T_NENV;
a->x.from += 5;
}
else if (!strncasecmp(where, "env=", 4)) {
a->type = T_ENV;
a->x.from += 4;
}
else if (!strcasecmp(where, "all")) {
a->type = T_ALL;
}
else if ((s = ap_strchr(where, '/'))) {
*s++ = '\0';
rv = apr_ipsubnet_create(&a->x.ip, where, s, cmd->pool);
if(APR_STATUS_IS_EINVAL(rv)) {
/* looked nothing like an IP address */
return "An IP address was expected";
}
else if (rv != APR_SUCCESS) {
apr_strerror(rv, msgbuf, sizeof msgbuf);
return apr_pstrdup(cmd->pool, msgbuf);
}
a->type = T_IP;
}
else if (!APR_STATUS_IS_EINVAL(rv = apr_ipsubnet_create(&a->x.ip, where,
NULL, cmd->pool))) {
if (rv != APR_SUCCESS) {
apr_strerror(rv, msgbuf, sizeof msgbuf);
return apr_pstrdup(cmd->pool, msgbuf);
}
a->type = T_IP;
}
else { /* no slash, didn't look like an IP address => must be a host */
a->type = T_HOST;
}
return NULL;
}
Die Werte der Direktive Order:
static const char *order(cmd_parms *cmd, void *dv, const char *arg)
{
authz_host_dir_conf *d = (authz_host_dir_conf *) dv;
int i, o;
if (!strcasecmp(arg, "allow,deny"))
o = ALLOW_THEN_DENY;
else if (!strcasecmp(arg, "deny,allow"))
o = DENY_THEN_ALLOW;
else if (!strcasecmp(arg, "mutual-failure"))
o = MUTUAL_FAILURE;
else
return "unknown order";
for (i = 0; i < METHODS; ++i)
if (cmd->limited & (AP_METHOD_BIT << i))
d->order[i] = o;
return NULL;
}
Manpage für strcasecmp(). Mit anderen Worten: Apache ist soetwas von statisch case INsensitive wie nur irgendetwas sein kann!
Apache auch. ;-)
Der Verweis passt zu Deiner Aussage, selbst wenn sie richtig wäre, wie "Der eine schwimmt über den See, der andere hat auch Euro".
Gruß aus Berlin!
eddi
Hi,
allow from all => 500
Wenn du keinen Schreibfehler gemacht hast, ...hat er wohl, wenn er das wirklich so in der .htaccess stehen hat.
Die Welt ist case sensitive. Apache auch. ;-)
Nein, das ist hier nicht das Problem.
Syntax of the Configuration Files:
„Directives in the configuration files are case-insensitive, but arguments to directives are often case sensitive.“
Und bei [A|a]llow ist „from all“ in der Dokumentation klein geschrieben. Allerdings ist m.W. auch das nicht erforderlich.
MfG ChrisB
Hallo,
Syntax of the Configuration Files:
„Directives in the configuration files are case-insensitive, but arguments to directives are often case sensitive.“
genau den Satz hatte ich gemeint. Ich hatte allerdings gelesen "... configuration files are case-sensitive", denn die Tatsache, dass eine Auswertung *nicht* case-sensitive ist, bedarf ja keiner Erwähnung, weil sie keine potentielle Fehlerquelle ist.
Ciao,
Martin