.htaccess protect symlinked TYPO3后端

brjng4g3  于 2023-05-01  发布在  其他
关注(0)|答案(4)|浏览(106)

我在保护一台老式的TYPO 387后端(/typo 3)通过普通TYPO 3中的AuthType基本部分。htaccess文件。我总是以内部服务器错误告终。以前有人这么做过吗?有没有可能这不能用符号链接?
我把这部分代码放在我的。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

谢谢你的任何提示!

vaj7vani

vaj7vani1#

假设您的/usr/etc/.htpasswd文件是可访问的且有效的(使用htpasswd命令正确创建更改为644),您的示例 * 应该 * 适用于Apache 2.2,但根据comments in this post不适用于Apache 2.4。从字面上看,在2.4它将工作,但将需要密码也为您的根域。
有两种解决办法。首先是在typo3目录中放置额外的.htaccess文件,使用简单的规则,即:如
@Naderio**所示:

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

但是,如果您按照TYPO 3文档中的建议创建了一个指向源代码的typo3符号链接,并且/或者您不想对使用相同源代码的所有项目都要求BasicAuth,则可以直接在VHOST配置中覆盖这些设置,例如(假设您将所有TYPO 3项目都设置为:例如,在/www/typo3/文件夹中:

<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>

注意:我会检查你尝试使用的/usr/etc/路径是否可以被Apache访问,也许把你的.htpasswd文件移到离你的www结构更近的地方会更好,比如文件夹/www/etc/,并相应地修复上面的规则?

d8tt03nd

d8tt03nd2#

应与以下人员合作:

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

抛出内部服务器错误,e。例如,如果AuthUserFile的路径不正确。
在这里,我写下了我个人公开文档的片段:https://www.entwicklertools.de/snippet-sammlung/htaccess-snippets/passwortschutz-einrichten/

xkftehaa

xkftehaa3#

感谢所有的回复。
最后,我们也在vhost中通过以下代码使用“location”标记来实现这一点。

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

jjhzyzn04#

如果你不能编辑vhost配置,这一行应该代替你的SetEnvIf。htaccess,intoo:

SetEnvIfNoCase Request_URI ^/typo3/$ require_auth=true

相关问题