Wachtwoord dat een map en al zijn submappen beveiligt met .htaccess

Ik probeer een subdomein en al zijn submappen en bestanden met een wachtwoord te beveiligen, maar mijn kennis hierover is zeer beperkt, hoe kan ik dat doen?


Antwoord 1, autoriteit 100%

Het is een eenvoudig proces in twee stappen

Plaats in je .htaccess

AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
require valid-user

gebruik http://www.htaccesstools.com/htpasswd-generator/of commando regel om wachtwoord te genereren
en plaats het in de .htpasswd

Opmerking 1: Als u cPanel gebruikt, moet u configureren in de beveiligingssectie “Mappen met wachtwoordbeveiliging”

EDIT: Als dit niet werkte, moet je waarschijnlijk een AllowOverride Alldoen in de directory van de .htaccess (of in ieder geval de vorige) in http.confgevolgd door een apache-herstart

<Directory /path/to/the/directory/of/htaccess>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
</Directory>

Antwoord 2, autoriteit 27%

Om een directory die door Apache wordt bediend met een wachtwoord te beveiligen, hebt u een .htaccess-bestand nodig in de directory die u wilt beschermen en een .htpasswd-bestand dat zich overal op uw systeem kan bevinden waartoe de Apache-gebruiker toegang heeft (maar zet het ergens verstandig en privaat). Waarschijnlijk wil je .htpasswdniet in dezelfde map plaatsen als .htaccess.

Het .htaccess-bestand bestaat mogelijk al. Zo niet, maak het dan aan. Voeg vervolgens in:

AuthType Basic
AuthName "Your authorization required message."
AuthUserFile /path/to/.htpasswd
require valid-user

Maak vervolgens een .htpasswd-bestand aan met de gewenste gebruikersnaam en wachtwoord. Het wachtwoord moet worden gecodeerd. Als u op een Linux-server bent, kunt u de HTPASSWD opdracht doen die versleutelt het wachtwoord voor u. Hier is dat opdracht hiervoor kan worden gebruikt:

htpasswd -b /path/to/password/file username password


Antwoord 3, Autoriteit 10%

Verleng gewoon het antwoord van Mahesh.

.htaccess

AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
require valid-user

Als u geen online wachtwoordgenerator wilt gebruiken, kunt u htpasswdof openssl:

gebruiken

1. Met htpasswd

htpasswd -c /path/to/the/directory/you/are/protecting/.htpasswd my_username
# then enter a password
# -c means Create a new file

2. Met openssl

openssl passwd -apr1 your_password

Plaats vervolgens het gegenereerde wachtwoord op .htpasswdmet formaat:

username:<generated_password>

Voorbeeld:

.htpasswd

my_username:$apr1$ydbofBYx$6Zwbml/Poyb61IrWt6cxu0

Antwoord 4, Autoriteit 6%

U moet een wachtwoord (gebruikersnaam + wachtwoord) genereren voor authenticatie, schrijf het naar een bestand en plaats deze in de subdirectory die u toegang wilt beperken.

String ziet eruit,

username:hashkey
  • U kunt http wachtwoord generator tool om dit te doen.
  • Kopieer en plak de tekenreeks die u van de bovenstaande site hebt verkregen naar een nieuw bestand (.htpasswd) ergens buiten de webroot van uw site (beter ergens in de thuismap van de gebruiker te bewaren).
  • Voeg de volgende regels toe aan uw .htaccess-bestand.
AuthType Basic
AuthName "Require Authentication"
AuthUserFile [PATH_TO_FILE]/.htpasswd
Require valid-user
  • Als het wachtwoord niet wordt geactiveerd, controleer dan de toestemming van het .htaccess-bestand.

  • Als de verificatie mislukt, controleer dan of er een .htpasswd-bestand op de opgegeven locatie aanwezig is. (Zorg ervoor dat uw gebruikersaccount voldoende rechten heeft op het .htpasswd-bestand om te lezen)

  • Je hoeft de server niet opnieuw op te starten om dit te bereiken.

Laat het me weten als je vragen hebt.


Antwoord 5, autoriteit 2%

U wilt waarschijnlijk de mod_auth_digest-module. Apache heeft een zeer mooie gidsgegeven voor het gebruik van het volledige bereik van authenticatie en autorisatiemodules.


Antwoord 6

Om een juist wachtwoord aan te maken, kunt u een php-bestand maken en dit lokaal uitvoeren (op uw computer, niet op de webserver) met de volgende inhoud:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<form method="post" accept-charset="utf-8">
    <input type="text" name="clear"/>
    <input type="submit" name="submit" value="generate" />
</form>
<?php
header("Content-Type: text/html; charset=utf-8");
if (isset($_POST['clear']) && $_POST['clear'] != '') {
    $cl = $_POST['clear'];
    $pw = crypt($cl, base64_encode($cl));
    echo $pw;
}
?>
</body>
</html>

Ik plaats mijn .htpasswd-bestand meestal in een map met de naam /htpasswd/ buiten de webcontentmap, zoals AuthUserFile /home/www/usr122/files/htpasswd/.sportsbar_reports_htpasswd(en niet in de webcontentmap /home/www/usr122/html/htpasswd/) en hernoem het .htpasswd-bestand naar waar het voor is, bijv. .sportsbar_reports_htpasswd

Het wachtwoordbestand zelf zou er als volgt uit moeten zien

testusername:dGATwCk0tMgfM

waarbij de gebruikersnaam testusernameis en het wachtwoord testuserpassword

Other episodes