.htaccess 保护符号链接的 TYPO3 后端
.htaccess protect symlinked TYPO3 backend
我正在尝试通过普通 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
感谢任何提示!
适用于:
AuthType basic
AuthName "Secret area!"
AuthUserFile /usr/etc/.htpasswd
require valid-user
Order deny,allow
Deny from all
Satisfy ANY
抛出内部服务器错误,例如如果您的 AuthUserFile 路径不正确。
这里我写下了我个人 public 文档的片段:
https://www.entwicklertools.de/snippet-sammlung/htaccess-snippets/passwortschutz-einrichten/
假设您的 /usr/etc/.htpasswd
文件可访问且有效(使用 htpasswd
命令正确创建 并且 修改为 644
)您的示例 [根据 comments in this post,=35=]应该 适用于 Apache 2.2
,但 不适用于 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 文档 and/or 中的建议创建了指向源的 typo3
符号链接,您不希望所有使用相同源的项目都需要 BasicAuth,您可以覆盖这些直接在 VHOST 配置中设置(假设您拥有所有 TYPO3 项目,即在 /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>
注意:无论如何,我会检查 Apache 是否可以访问您尝试使用 /usr/etc/
的路径,也许最好将您的 .htpasswd
文件移到更靠近您的 www
结构类似于文件夹 /www/etc/
并相应地修改上述规则?
感谢所有回复。
最后,我们还在 vhost 中使用“location”-tag 通过以下代码完成了此操作。
<Location /typo3/>
AuthType Basic
AuthName "Enter Password"
AuthUserFile /www_data/.htpasswd4xyz
Require valid-user
</Location>
如果您无法编辑虚拟主机配置,
此行应该代替 .htaccess 中的 SetEnv 工作,进入:
SetEnvIfNoCase Request_URI ^/typo3/$ require_auth=true
我正在尝试通过普通 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
感谢任何提示!
适用于:
AuthType basic
AuthName "Secret area!"
AuthUserFile /usr/etc/.htpasswd
require valid-user
Order deny,allow
Deny from all
Satisfy ANY
抛出内部服务器错误,例如如果您的 AuthUserFile 路径不正确。
这里我写下了我个人 public 文档的片段: https://www.entwicklertools.de/snippet-sammlung/htaccess-snippets/passwortschutz-einrichten/
假设您的 /usr/etc/.htpasswd
文件可访问且有效(使用 htpasswd
命令正确创建 并且 修改为 644
)您的示例 [根据 comments in this post,=35=]应该 适用于 Apache 2.2
,但 不适用于 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 文档 and/or 中的建议创建了指向源的 typo3
符号链接,您不希望所有使用相同源的项目都需要 BasicAuth,您可以覆盖这些直接在 VHOST 配置中设置(假设您拥有所有 TYPO3 项目,即在 /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>
注意:无论如何,我会检查 Apache 是否可以访问您尝试使用 /usr/etc/
的路径,也许最好将您的 .htpasswd
文件移到更靠近您的 www
结构类似于文件夹 /www/etc/
并相应地修改上述规则?
感谢所有回复。
最后,我们还在 vhost 中使用“location”-tag 通过以下代码完成了此操作。
<Location /typo3/>
AuthType Basic
AuthName "Enter Password"
AuthUserFile /www_data/.htpasswd4xyz
Require valid-user
</Location>
如果您无法编辑虚拟主机配置, 此行应该代替 .htaccess 中的 SetEnv 工作,进入:
SetEnvIfNoCase Request_URI ^/typo3/$ require_auth=true