我已经在一个裸露的Ubuntu20-04盒子上安装了Wordpress,如下所示Digital Ocean\'s guide.现在我想用密码保护整个网站,但由于我找不到任何保护上传文件和图像的插件,我正在尝试使用basic auth。
所以我创建了一个。htpasswd文件
-rw-r--r-- 1 root root 132 Jan 12 00:07 /etc/wordpress/.htpasswd
我编辑了/var/www/mysite。com/。htaccess(用真实域代替mysite)阅读:
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/wordpress/.htpasswd
require valid-user
但该网站仍然可以很好地加载,没有我想要的丑陋的登录提示
...what am I doing wrong?基本身份验证的替代解决方案是受欢迎的,但我认为这似乎是保护上传内容的最简单途径。(这是为了为该街区的囚犯提供有关公寓大楼的信息,有些事情(如会议记录)是半机密的——如果人们每次必须登录一次才能访问该网站,我不介意)
SO网友:mholder
确定编辑默认ssl。形态如所述here (或者在我的示例中是/etc/apache2/sites enabled/mysite.com le ssl.conf),将身份验证设置添加到虚拟主机块的末尾works fine now.所以现在是:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mysite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
<Directory "/var/www/mysite.com">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/wordpress/.htpasswd
require valid-user
</Directory>
</VirtualHost>
</IfModule>
本页还介绍了如何使用。通过修改AllowOverride访问文件。
我可能应该对guide I originally followed
SO网友:MrWhite
我有<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
在我的/etc/apache2/apache2.conf
这大概就是我错的地方?
如果那是唯一AllowOverride
那肯定是个问题。然而,这也意味着.htaccess
文件根本没有被处理,您也没有使用WordPress permalinks。
然而AllowOverride None
涵盖父级的指令/var/www/
如果您具有重写AllowOverride All
(或类似)指令,涵盖/var/www/mysite.com/
相关目录中的目录<VirtualHost>
容器-这将是更常见的配置。您拒绝访问父目录,并允许访问特定子目录。
<Directory /var/www/mysite.com/>
Options -Indexes
AllowOverride All
Require all granted
</Directory>
Options -Indexes
禁用在父配置中启用的目录列表(mod\\u autoindex)。