J'essaie de protéger un ancien backend TYPO3 8.7 (/ typo3) via une partie de base AuthType dans le fichier .htaccess TYPO3 normal. Je me retrouve toujours avec des erreurs de serveur internes. Quelqu'un a-t-il déjà fait ça? Est-il possible que cela ne puisse pas fonctionner avec les liens symboliques?
Je mets cette partie de code au-dessus de mon .htaccess (avant que tous les trucs rwrite ne commencent):
SetEnvIf Request_URI ^.*/typo3.* require_auth=true AuthType basic AuthName "Admin Schutz" AuthUserFile /usr/etc/.htpasswd #Order Deny,Allow #Deny from all #Satisfy any Require valid-user Allow from env=!require_auth
Merci pour tous les indices!
4 Réponses :
Devrait travailler avec:
AuthType basic AuthName "Secret area!" AuthUserFile /usr/etc/.htpasswd require valid-user Order deny,allow Deny from all Satisfy ANY
Une erreur de serveur interne est générée, par exemple si votre chemin vers AuthUserFile n'est pas correct.
Ici, j'ai écrit mon extrait pour ma documentation publique personnelle: https://www.entwicklertools.de/snippet-sammlung/htaccess-snippets/passwortschutz-einrichten/
"Order deny, allow" et "Deny from all" ne fonctionneront pas dans Apache> = 2.4, sauf si vous avez activé le access_compat_module. Dans tous les cas, si vous savez que vous utilisez la version 2.4 ou supérieure, n'utilisez pas les directives obsolètes.
Voir la citation de la documentation officielle du serveur HTTP Apache: "Les directives Allow, Deny et Order, fournies par mod_access_compat, sont obsolètes et disparaîtront dans une version future. Vous devez éviter de les utiliser et éviter les didacticiels obsolètes recommandant leur utilisation." httpd.apache.org/docs/2.4/howto/access.html
En supposant que votre fichier /usr/etc/.htpasswd
est accessible et valide (créé correctement avec la commande htpasswd
et chmodé en 644
), votre exemple devrait fonctionner pour Apache 2.2
, mais pas pour Apache 2.4
selon les commentaires de cet article . Littéralement dans 2.4
cela fonctionnera, mais nécessitera également un mot de passe pour votre domaine racine.
Il existe deux solutions. Tout d'abord, placez des fichiers .htaccess
supplémentaires dans votre répertoire typo3
avec une règle simple, c'est-à-dire comme indiqué par @Naderio :
<VirtualHost *:80> ServerAdmin your@email.tld DocumentRoot "/www/typo3/project-x.loc" ServerName project-x.loc # below your valid paths for log files... # ErrorLog "logs/project-x.loc-error_log" # CustomLog "logs/project-x.loc-access_log" common <Directory "/www/typo3/project-x.loc"> Options Indexes FollowSymLinks ExecCGI Includes AllowOverride All Require all granted </Directory> <Directory "/www/typo3/project-x.loc/typo3"> AuthType basic AuthName "Restricted in VHOST config!" AuthUserFile /usr/etc/.htpasswd require valid-user Order deny,allow Deny from all Satisfy ANY </Directory> </VirtualHost>
Cependant, si vous avez créé un typo3
symbolique typo3
vers les sources comme suggéré dans la documentation de TYPO3 et / ou que vous ne voulez pas exiger BasicAuth pour tous les projets qui utilisent les mêmes sources, vous pouvez remplacer ces paramètres directement dans la configuration VHOST comme (en supposant que vous avez tous vos projets TYPO3 c'est à dire dans le dossier /www/typo3/
:
AuthType basic AuthName "Secret area!" AuthUserFile /usr/etc/.htpasswd require valid-user Order deny,allow Deny from all Satisfy ANY
Remarque: je vérifierais de toute façon si le chemin que vous essayez d'utiliser /usr/etc/
est accessible pour Apache, peut-être qu'il sera préférable de déplacer votre fichier .htpasswd
quelque part plus près de votre structure www
, comme dans le dossier /www/etc/
et fixer les règles ci-dessus en conséquence?
Merci à toutes les réponses.
enfin, nous l'avons également fait dans le vhost par le code suivant en utilisant le tag "location".
<Location /typo3/> AuthType Basic AuthName "Enter Password" AuthUserFile /www_data/.htpasswd4xyz Require valid-user </Location>
Dans ce monde, il y a toujours des endroits pour des améliorations;) Merci pour le partage.
Dans le cas où vous ne pouvez pas modifier la configuration de vhost, cette ligne doit fonctionner à la place de votre SetEnvIf dans votre .htaccess, en:
SetEnvIfNoCase Request_URI ^/typo3/$ require_auth=true
Vous devriez vérifier les journaux de votre serveur et ajouter les messages ici pour votre erreur de serveur interne.