当启用apache htpasswd时,是否有一个统一的https重定向方法可以同时适用于cPanel和VestaCP



我经营的网站同时在VestaCP和cPanel下运行。在开发网站时,我设置了htpassword保护,密码语法如下:

AuthType Basic
AuthUserFile /home/the-account/htpasswd
AuthName "Restricted"
Require valid-user

用于重定向以获取要重定向到的所有内容https://www.the-website...我使用:

RewriteEngine on
RewriteBase /
Options +FollowSymlinks
# Redirect http to https
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.website.ext$1 [R,L]

如果未启用密码保护,重定向行可以正常工作。全部:

website.ext
www.website.ext
http://website.ext

重定向到:

https://www.website.ext (the goal)

然而,VestaCP与cPanel的行为不同,并且在cPanel中严重断裂。在vesta中,当您访问类似website.ext的url时,它会显示apache登录屏幕,首先您必须以http://登录,然后第二次以https://www.但这是有效的,你最终会达到目标。

有了cPanel,它就崩溃了。如果你试图以任何一个不合格的URL登录,你最终会出现超时,找不到页面,类似于:

www.website.ext401.shtml.

ext和401.html将一起运行,如您所见。主页面错误为:无法访问该网站。如果您尝试以身份登录https://www.website.ext它工作得很好。

修复cPanel问题很重要,VestaCP会很好。

在一位承包商朋友的大力帮助下,我在多个实时和开发(受限访问(网站上建立了我们的解决方案:

文件第一行的错误文档行解决了";ErrorDocument 401";启用Apache密码限制时cPanel中的问题

$website.$ext ==> your-website.com
$account ==> account folder of the home directory where the htpasswd file is stored; /home/home-folder

--------------剪--------------

ErrorDocument 401 default 
# Redirect http to https 
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ https://www.$website.$ext/$1 [L,R=301]
# BEGIN-APACHE-RESTRICTION
<If " %{HTTPS} != 'off' && %{HTTP_HOST} == 'www.$website.$ext'">
AuthType Basic
AuthUserFile /home/$account/htpasswd
AuthName "restricted area"
Require valid-user
</If>
# END-APACHE-RESTRICTION

相关内容

  • 没有找到相关文章

最新更新