htaccess-Datei funktioniert nicht

Hallo,

ich habe heute gesehen, dass Nextcloud folgenden Fehler meldet: “Dein Datenverzeichnis und Deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Du es aus dem Dokument-Root-Verzeichnis des Webservers bewegst.”

Ich habe nun im Internet gelesen, dass der Fehler auftreten soll, wenn Nextcloud nicht direkt im var/www/html Verzeichnis sein soll sondern z.B in meinem Fall in var/www/cloud.domain.yt

Meine sites available Config sieht so aus:

<VirtualHost *:80>
ServerAdmin email@domain.yt
ServerName cloud.domain.yt
ServerAlias cloud.domain.yt
DocumentRoot /var/www/cloud.domain.yt
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile gd
SSLCertificateKeyFile gd

<Directory /var/www/cloud.domain.yt/>
AllowOverride All

Weiß jemand weiter?

Hallo @anon12052248

Scheint etwas unvollstÀndig deine Config, wenn ich das mit der Beispielkonfiguration aus der Doku oder mit meiner Konfiguration vergleiche


https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html#apache-web-server-configuration

Die relevate Zeile, damit die .htaccess Files berĂŒcksichtigt werden, ist aber mit “AllowOverride All” drinn bei dir.

Evtl. ist ja das Rewrite Modul nicht aktiv


a2enmod rewrite

Weiter sollte auch mindestens die folgenden Module aktiv sein, damit alles korrekt funktioniert:

a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Ist alles drinnen, funktioniert weiterhin nicht

Könntest du mal deine vollstĂ€ndige Virtualhost Config hier posten und generell noch ein bisschen mehr Infos zu deinem System z.B. welches OS du nutzt? Der Directory Abschnitt sollte ungefĂ€hr so aussehen, wie in dem Link, den ich gepostet habe, der Pfad muss natĂŒrlich angepasst werden


  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>

Nach konfigurationsÀnderungen muss der Apache neu gestartet werden:

Debian/Ubuntu basierte Systeme:

systemctl restart apache2

RHEL/CentOS/Fedora:

systemctl restart httpd

Hallo, sorry fĂŒr die spĂ€te Antwort, hab mich erst heute wieder dran gesetzt. Habe alles davon gemacht und geht trotzdem nicht. Finde auch keine anderen Lösungsmöglichkeiten mehr im Netz. Grade sieht die Apache Config vom Nextcloud Ordner so aus:

<VirtualHost *:80>
    ServerAdmin emailadresse@email.org
    ServerName cloud.domain.yt
    ServerAlias cloud.domain.yt
    DocumentRoot /var/www/cloud.domain.yt
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /root/cloudflare/domain.yt.pem
    SSLCertificateKeyFile /root/cloudflare/domain.yt.key
</VirtualHost>

<VirtualHost *:443> 
  ServerName cloud.domain.yt
    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>
</VirtualHost>
 
<Directory /var/www/cloud.domain.yt/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    SetEnv HOME /var/www/cloud.domain.yt
    SetEnv HTTP_HOME /var/www/cloud.domain.yt

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
</Directory>

Pfad zu der Config bitte. Danke

/etc/apache2/sites-available
/etc/apache2/sites-enabled

Der Directory Block sollte vielleicht innerhalb der Virtual Host config stehen?

1 Like

Ich habe das mal etwas umgestellt


Plus habe ich die SSL Konfiguration in den zweiten VirtualHost verschoben und im ersten einen Redirect auf HTTPS gesetzt. Ich hoffe das hilft dir weiter


<VirtualHost *:80>
    ServerAdmin emailadresse@email.org
    ServerName cloud.domain.yt
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Redirect permanent / https://cloud.domain.yt/
</VirtualHost>
<VirtualHost *:443> 
  ServerName cloud.domain.yt
  DocumentRoot /var/www/cloud.domain.yt

  <Directory /var/www/cloud.domain.yt/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

  <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
  
  SetEnv HOME /var/www/cloud.domain.yt
  SetEnv HTTP_HOME /var/www/cloud.domain.yt
  
  SSLEngine on
  SSLCertificateFile /root/cloudflare/domain.yt.pem
  SSLCertificateKeyFile /root/cloudflare/domain.yt.key

  <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  </IfModule>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Die Fehlermeldung:

Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.

kommt auch wenn eine dieser (aber nicht nur) 3 Einstellungen in der config.php im Nextcloud/config Verzeichnis fehlerhaft ist:

  1. Trusted Domains

‘trusted_domains’ =>
array (
0 => ‘https://cloud.example.com’
),

Ein veralteter oder falscher Eintrag und die Fehlermeldung kommt.
Hier habe ich in meiner config.php nur die echte Domain drin mit https vorne dran.
Beim hinzufĂŒgen von Zahlen-IPs wie 192.168.0.1 oder so hatte ich nur Probleme.
Ich empfehle hier daher nur Domains einzutragen.

  1. Trusted Proxies

‘trusted_proxies’ =>
array (
0 => ‘192.168.0.1’
),

Ein veralteter oder falscher Eintrag und die Fehlermeldung kommt.
Hier habe ich in meiner config.php nur die echte Zahlen-IP drin.
Beim hinzufĂŒgen von Domainnamen wie https://cloud.example.com oder so hatte ich nur Probleme.
Ich empfehle hier daher nur Zahlen-IPs einzutragen.

  1. overwrite.cli.url

‘overwrite.cli.url’ => ‘https://cloud.example.com’,

Ein veralteter oder falscher Eintrag und die Fehlermeldung kommt.

Am besten mit diesen 3 Parametern bekannt machen, da diese die oben genannte Fehlermeldung ebenfalls auslösen können.

1 Like

Danke, ich bin deiner Anleitung gefolgt, das Problem besteht unter Nextcloud 29 trotzdem.

Wenn ich unter trusted_domains meine Domain mit https:// eintrage erhalte ich eine Fehlermeldung beim Laden der Nextloud Webseite, dass ich die Webseite hinzufĂŒgen soll zu trusted domains. Sobald ich das https:// entferne funktioniert die Nextcloud wieder.

1 Like

Ich hatte das Problem mal in einer Betaversion, bin aber leider nicht ganz sicher was es verursacht hat, respektive was den Ausschlag gegeben hat, dass es nun nicht mehr auftritt. Ich bin aber ziemlich sicher, dass das Problem nicht alleine mit der config.php gelöst werden kann, bzw. dass die Kombination aus Webserver Config und config.php entscheidend ist.

Das ist korrekt. Unter den trusted Domains sollten nur FQDNs, Domains oder allenfalls IP Adressen eingetragen werden.

Falls du https ezwingst, respektive http nach https “rewritest/redirectest” in der Webserverconfig, kannst du folgende Zeile zur config.php inzufĂŒgen:

'overwriteprotocol' => 'https',

Aber vielleicht magst du ja mal deine Webserverconfig und die config.php posten, ansonsten artet das hier in ein Ratespiel aus. :wink:

Ich hÀnge mich hier mal mit ran - habe eben auf Nextcloud Hub 8 (v29.0.0) geupdated und habe nun auch diesen Fehler drin stehen:

  • Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.

Auszug aus meiner config.php

$CONFIG = array (
  'passwordsalt' => 'geheim',
  'secret' => 'geheim',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    2 => 'cloud.meine-domain.de',
  ),
  'datadirectory' => '/home/meine-domain/web/cloud.meine-domain.de/public_html/data',
  'dbtype' => 'mysql',
  'version' => '29.0.0.19',
  'overwriteprotocol' => 'https',
  // hier war zuerst 'overwrite.cli.url' => 'http://localhost',
  'overwrite.cli.url' => 'https://cloud.meine-domain.de',
  ...
  'maintenance_window_start' => 1,
  'default_phone_region' => 'DE',
  'theme' => '',
  'loglevel' => 2,
  'trashbin_retention_obligation' => 'auto, 7',
);

1 Like

Bei mir war es eine IP in den trusted_domains.
@ Isaac Dein trusted_domains array ist nicht richtig nummeriert.

Habe die “2” zu “1” geĂ€ndert - Ă€ndert aber nichts an der .htaccess Meldung.

Bei mir war es eine IP in den trusted_domains.

Passen meine EintrÀge hier oder sollte anstatt der Domain die IP rein?

Ich konnte das in NC 29 mit Wildcards * lösen.

1 Like

Kannst du zum testen bei dir ‘trusted_domains’ den Eintrag localhost entfernen und nur deine Webseite drinstehen lassen. Also:
‘trusted_domains’ =>
array (
0 => ‘cloud.meine-domain.de’
),
oder mal mit Widcards probieren
‘trusted_domains’ =>
array (
0 => ‘*cloud.meine-domain.de’
),
oder mal mit https://
‘trusted_domains’ =>
array (
0 => ‘https://cloud.meine-domain.de’
),

1 Like
  1. Keine Änderung
  2. Keine Änderung
  3. mit https:// davor komme ich dann gar nicht mehr in Nextcloud
Zugriff ĂŒber eine nicht vertrauenswĂŒrdige Domain
Bitte kontaktieren Sie Ihren Administrator. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.

Wenn du mit https:// gar nicht rein kommst,
Kann es dann sein dass dein Server nur unter http:// lÀuft? Und du kein SSL Zertifikat und damit kein https:// hast?
Benutzt du Apache als Webserver und könntest du die dort hinterlegte Konfigurationsdateien fĂŒr deine Webseite in anonymisierter Form auffĂŒhren?
Ich meine die Dateien im sites-enabled Ordner in denen dann die virtualhost und der Port und so steht.

Das hast Du falsch verstanden. Ich habe nur https aktiv und lÀuft auch problemlos.

Teste mal selber in der config bei Deinem Eintrag ein https:// vorne dran zu machen und rufe NC auf, dann siehst Du was ich meine. Es kommt dann kein Login, sondern eben sofort o.g. Fehlermeldung von NC.