.htaccess 保护符号链接的 TYPO3 后端

问题描述 投票:0回答:4

我正在尝试通过普通 TYPO3 .htaccess 文件中的 AuthType 基本部分来保护较旧的 TYPO3 8.7 后端(/typo3)。 我总是以内部服务器错误告终。 有没有人这样做过? 这可能无法与符号链接一起使用吗?

我将这部分代码放在我的 .htaccess 之上(在所有 rwrite 开始之前):

    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

感谢任何提示!

.htaccess security authorization typo3 backend
4个回答
1
投票

假设您的

/usr/etc/.htpasswd
文件可访问且有效(使用
htpasswd
命令 修改为
644
正确创建)您的示例 should 适用于 Apache
2.2
,但 not 在 Apache
2.4
根据这篇文章中的评论。从字面上看,在
2.4
中它会起作用,但您的根域也需要密码。

有两种解决方法。首先是使用简单的规则将额外的

.htaccess
文件放置在您的
typo3
目录中,即如@Naderio所示:

AuthType        basic
AuthName        "Secret area!"
AuthUserFile    /usr/etc/.htpasswd
require         valid-user
Order           deny,allow
Deny            from all
Satisfy         ANY

但是,如果您按照 TYPO3 文档中的建议创建了指向源的

typo3
符号链接和/或您不想为所有使用相同源的项目要求 BasicAuth,您可以直接在 VHOST 配置中覆盖这些设置,例如(假设你有所有的 TYPO3 项目,即在
/www/typo3/
文件夹中:

<VirtualHost *:80>

    ServerAdmin [email protected]
    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>

注意:无论如何,我会检查您尝试使用

/usr/etc/
的路径是否完全可供Apache访问,也许最好将您的
.htpasswd
文件移动到更靠近您的
www
结构的地方,例如文件夹
/www/etc/ 
并相应地修改上述规则?


1
投票

应该与:

AuthType        basic
AuthName        "Secret area!"
AuthUserFile    /usr/etc/.htpasswd
require         valid-user
Order           deny,allow
Deny            from all
Satisfy         ANY

抛出内部服务器错误,例如如果您的 AuthUserFile 路径不正确。

在这里,我写下了我的个人公共文档片段: https://www.entwicklertools.de/snippet-sammlung/htaccess-snippets/passwortschutz-einrichten/


1
投票

感谢大家的回复

最后,我们还在 vhost 中使用“位置”-tag 通过以下代码完成了此操作。

 <Location /typo3/>
            AuthType Basic
            AuthName "Enter Password"
            AuthUserFile /www_data/.htpasswd4xyz
            Require valid-user
    </Location>

0
投票

如果您无法编辑虚拟主机配置, 这条线应该在你的 .htaccess 中代替你的 SetEnvIf 工作:

SetEnvIfNoCase Request_URI ^/typo3/$ require_auth=true
© www.soinside.com 2019 - 2024. All rights reserved.