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 All
doen 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 .htpasswd
niet 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 htpasswd
of 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 .htpasswd
met 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 testusername
is en het wachtwoord testuserpassword