Verzeichnisse mit htaccess sperren

Warum Verzeichnisse freigeben, die nicht öffentlich zugänglich sein müssen?

Joomla! ist nach dem sog. „MVC-Modell“ programmiert, d.h. alle Aufrufe werden zentral über eine Datei gesteuert, andere benötigte Dateien werden nur in diese zentrale Datei hineingeladen.
Genau diesen Umstand kann man sich zu Nutze machen, da außer auf diese zentrale Datei der Zugriff auf andere Dateien nicht nötig ist.

Die Administration

Auf die Administration, jedenfalls auf die erste Ebene, brauchen wir aber noch Zugriff, damit wir die Administration wie gewohnt nutzen können.
Achtung!:
Schützen Sie unbedingt die erste Ebene des Administrator-Verzeichnisses!
Wie das geht können Sie im Beitrag „Schutz der Administration“ nachlesen.


Man kann alle Verzeichnisse von Joomla! mit einer .htaccess-Datei wie dieser sperren:
<Files "*.*">
Deny from all
</Files>
Diese Datei muss in die folgenden Verzeichnisse:
  • /administrator/backups
  • /administrator/cache
  • /administrator/language
  • /cache
  • /language
  • /libraries
  • /logs
  • /tmp
  • /xmlrpc

Allerdings muss in einige Verzeichnisse eine abgewandelte Datei hinein:
<Files "*.*">
Deny from all
</Files>

<FilesMatch "\.(js|css|png|jpg|jpeg|gif|ico|flv|swf)$">
Allow from all
</FilesMatch>
Diese Datei muss in die folgenden Verzeichnisse:
  • /administrator/components
  • /administrator/help
  • /administrator/images
  • /administrator/includes
  • /administrator/modules
  • /administrator/templates
  • /components
  • /images
  • /includes
  • /media
  • /modules
  • /plugins
  • /templates
Achtung!:
Manche Erweiterungen brauchen einen Direktaufruf über eine PHP-Datei. Das kann man aber leider nur durch ausgiebige Tests herausfinden.
Hat man die Datei gefunden ergänzt man eine weitere htaccess-Datei in dem betroffenen Verzeichnis und schreibt das Folgende:
<Files dateiname.php>
Allow from all
</Files>
Beispiel: TinyMCE / JCE
Beim TinyMCE bzw. JCE muss folgende Datei im Verzeichnis „/plugins/editors/jce/tiny_mce“ (JCE) bzw. „/plugins/editors/tinymce/jscripts/tiny_mce“ (TinyMCE) angelegt werden:
# Diese erste Anweisung muss nur beim JCE eingebaut werden!
<Files popupImage.php>
Allow from all
</Files>

<Files tiny_mce_gzip.php>
Allow from all
</Files>

<FilesMatch "\.(htm|html)$">
Allow from all
</FilesMatch>

Joomla! Translation Team

Joomla! Translation Team

Sponsor: Yootheme

YOOtheme

Sponsor: Mittwald

Mittwald - Webhosting. Einfach intelligent.