nemoinho: .htacces Passwort 500er

Guten Tag allerseits,
ich habe ein Problem für welches ich keine Lösung finde,
und zwar möchte ich ein Verzeichnis mittels .htaccess schützen, diese .htaccess sowie die dazugehöhrige .htpasswd sollen mit php erstellt werden, soweit ist das auch kein problem.
Nur wenn ich dann local versuche auf eine Datei in dem Verzeichnis zuzugreifen bekomme ich nach erfolgter authentifizierung lediglich einen 500 Internal Error ?!?
(Hinweis: Die Authentisierungseinstellungen vom Apache habe ich nicht verändert.)
Hier mein Code:

<?php
  $username = "test_user";
  $passwort = "test_pwd";
  $Neues_Verzeichnis = str_replace($_SERVER['DOCUMENT_ROOT'], "", dirname($_SERVER['SCRIPT_FILENAME'])).'/ht/';

mkdir($_SERVER['DOCUMENT_ROOT'].$Neues_Verzeichnis, 0777);

$htaccess = fopen($_SERVER['DOCUMENT_ROOT'].$Neues_Verzeichnis.'.htaccess','w');
  fputs($htaccess,
    "AuthType Basic\n"
    ."AuthName "".$Neues_Verzeichnis.""\n"
    ."AuthUserFile "".$Neues_Verzeichnis.".htpasswd"\n"
    ."Require valid-user"
  );
  fclose($htaccess);

$htpasswd = fopen($_SERVER['DOCUMENT_ROOT'].$Neues_Verzeichnis.'.htpasswd', 'w');
  $pass = crypt($password, substr($password, 0, 2));
  $pwf .= $username.":".$pass."\n";
  fputs($htpasswd, $pwf);
  fclose($htpasswd);

$test_file = fopen($_SERVER['DOCUMENT_ROOT'].$Neues_Verzeichnis.'test.php', 'w');
  fputs($test_file, "test");
  fclose($index);
?>

  1. Hello,

    Nur wenn ich dann local versuche auf eine Datei in dem Verzeichnis zuzugreifen bekomme ich nach erfolgter authentifizierung lediglich einen 500 Internal Error ?!?

    Was veranlasst Dich zu glauben, dass Du Dich erfolgreich authentifiziert hättest?

    Ein Status 500 kommt i.d.R. dann, wenn versucht wurde, den Server zu konfigurieren in einer Art, die widersprüchlich oder falsch ist. Wenn also die "AllowOverride"-Einstellung nicht zur ".htaccess"-Direktive passt, dann bekommst Du diesen Statuscode des Servers.

    Schau also in Dein Error_Log, was dort als Grund vermerkt ist.

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Sry ich bin von falschen Tatsachen ausgegangen... aber mittlerweile klappt es so wie es soll! :)

      1. Hello,

        Sry ich bin von falschen Tatsachen ausgegangen... aber mittlerweile klappt es so wie es soll! :)

        Das freut mich, dass es jetzt klappt.
        Das mit den falschen Vorussetzugnen ist nicht tragisch. Das passiert nicht nur Dir :-)
        Schön wäre es allerdinds, wenn Du noch die Ursache kurz beschreiben hättest. dann hätte auch Andere noch etwas von unserem kurzen Dialog.

        Ein harzliches Glückauf z. Zt. aus Syburg

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Moin nochmal,

          Schön wäre es allerdinds, wenn Du noch die Ursache kurz beschreiben hättest. dann hätte auch Andere noch etwas von unserem kurzen Dialog.

          jo, ich will das jetzt aber nicht zu weit ausführen, ich habe mir anschließend lediglich zwei funktionen gebastelt die ich provisorisch benutze, die reichen mir bei einer absoluten Pfadangabe komplett aus:

            
          function Create_New_ht($Folder)  
          {  
            if(!is_file($Folder.'.htaccess')){  
              if(!is_dir($Folder))  
                mkdir($Folder,0777);  
              $htaccess = fopen($Folder.'.htaccess','w');  
              fputs($htaccess,  
                'AuthType Basic'."\n"  
                .'AuthName "FORBIDDEN AREA'."\n"  
                .'AuthUserfile "'.$Folder.'.htpasswd"'."\n"  
                .'Require valid-user'  
              );  
              fclose($htaccess);  
            }  
          }  
          function Sort_ht_Member($Folder,$Username,$Passwort,$New_Member)  
          {  
            if(!is_file($Folder.'.htaccess')) // Wenn keine .htaccess existiert neue anlegen  
              Create_New_ht($Folder);  
            if($New_Member === true)  // Falls ein neues Mitglied einfefuegt werden soll  
              $htpasswd = fopen($Folder.'.htpasswd', 'a');  
            else  // Sonst wird die Liste neu geschrieben und nur der neue Eintrag verbleibt  
              $htpasswd = fopen($Folder.'.htpasswd', 'w');  
            $pass = crypt($Passwort, substr($Passwort, 0, 2));  
            $pwf .= $Username.":".$Passwort."\n";  
            fputs($htpasswd, $pwf);  
            fclose($htpasswd);  
          }  
            
          Sort_ht_Member(dirname($_SERVER['SCRIPT_FILENAME']).'/new_Folder/','tes_user','test_pass',true);