Jörg Reinholz: htaccess - Ordner mit bestimmten Präfix schützen

Beitrag lesen

Wie stelle ich das an, wenn es möglich ist?

Das hier gänge (mit mod_alias, meist aktiviert) in der .htaccess:

  
[link:http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch@title=RedirectMatch] ^(.*/pvt_.*/.*$) /404.php?orig=$1  
# auswertbar oder die Leichtlast-Variante:  
RedirectMatch ^.*/pvt_.*/.*$ /404.html  

Das wäre aber nur ein Notbehelf.

Mit mod_rewrite (längst nicht immer aktiviert) geht auch

  
RewriteEngine On  
[link:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule@title=RewriteRule] ^(.*/pvt_.*/.*)$ /404.php?orig=$1  
# auswertbar oder die Leichtlast-Variante:  
RewriteRule .*/pvt_.*/ /404.html  

Natürlich braucht beides die Erlaubnis, die Serverkonfiguration zu überschreiben. Ich habe in beiden Varianten auf die Prüfung des Moduls verzichtet, denn wenn das Modul nicht installiert und konfiguriert ist liefert der Server dann nur den 500er Fehler - was aber besser ist als die 'geheimen' Daten zu verbreiten.

<?php
header("HTTP/1.0 404 Not Found");
$orig='';
if ( isset($_GET['orig']) ) { $orig='/'.$_GET['orig']; }
echo ('<html><h1>Fehler 404</h1><p>Die Datei "' . htmlentities($orig) .'" ist nicht vorhanden.</p></html>' );

Jörg Reinholz