我将此.htaccess
规则添加到WordPress网站
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} (.*)
RewriteCond %{HTTP_COOKIE} !wordpress_logged_in_([a-zA-Z0-9_]*) [NC]
RewriteRule \.(zip|doc|docx|pdf)$ – [NC,F,L]
</IfModule>
这条规则是正确的,但我想给予一个例外。
https://example.com/wp-content/uploads/2022/11/name-of-pdf.pdf
必须可见,即使您未登录。
1条答案
按热度按时间gkl3eglg1#
将此 * 条件 * 更改为:
!
前缀否定表达式,因此当它不匹配时,它是成功的。=
前缀运算符使其成为一个精确的字符串匹配,而不是正则表达式,因此只需按原样使用完整的URL路径。必须可见,即使如果您未登录
只是为了澄清(在注解中提出的问题)......这段代码 * 不 * 检查用户是否“登录”(它不验证WP auth令牌)。这只是检查cookie的存在(即包含值
wordpress_logged_in_
的Cookie
HTTP请求头)。这可能会阻止临时用户,但它很容易被确定的用户绕过,因此不能用于保护敏感介质。