我想保护我的服务器中的所有Wordpress管理界面(wp-login.php/wp)。为此,我希望在到达真正的WordPress登录页面之前,在Apache中创建一个全局配置,请求一个固定的用户/密码(HTTP身份验证)。这将避免来自密码扫描机器人的PHP超载。
<FilesMatch "wp-login.php">
AuthUserFile /etc/wordpress.passwd
AuthName "TYPE USER wp AND PASSWORD wp"
AuthType Basic
require valid-user
</FilesMatch>工作时,任何名为wp-login.php的文件都会询问密码。
但是当我在Wordpress站点上运行时,它的.htaccess比全局配置具有某种“优先级”。当我访问wp-login.php时,我只收到一个404错误。如果我删除/重命名.htaccess,FilesMatch可以工作,但我失去了“路径掩码”功能,这是必要的。
Wordpress .htaccess是:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]我正在寻找一种使FilesMatch指令优先于.htaccess (重写模块)的方法:询问密码,而不是重写URL (提供404)。
有什么想法吗?
发布于 2021-01-05 14:49:48
Wordpress .htaccess重写、401和403返回代码使用的所有内容,包括ErrorDocument指令。我为ErrorDocument提供了个性化的cPanel文件(默认为cPanel服务器)。因此,它不需要密码,而是重写HTTP头,询问密码,同时显示404错误页面,这让web浏览器抓狂。
为了解决这个问题,我强制使用默认的ErrorDocument消息:
ErrorDocument 401 default
ErrorDocument 403 defaulthttps://serverfault.com/questions/1047969
复制相似问题