Apache 为什么';这个.htaccess代码行吗?
被赋予使用此代码的权限,并在不更改它的情况下使用它Apache 为什么';这个.htaccess代码行吗?,apache,.htaccess,Apache,.htaccess,被赋予使用此代码的权限,并在不更改它的情况下使用它 <FilesMatch "^(?!log_request\.php).*$"> AuthUserFile /protect/.htpasswd AuthName "Tester's test test" AuthType Basic Require valid-user </FilesMatch> ErrorDocument 401 /log_request.php AuthUserFile/pro
<FilesMatch "^(?!log_request\.php).*$">
AuthUserFile /protect/.htpasswd
AuthName "Tester's test test"
AuthType Basic
Require valid-user
</FilesMatch>
ErrorDocument 401 /log_request.php
AuthUserFile/protect/.htpasswd
AuthName“测试人员的测试”
AuthType Basic
需要有效用户
ErrorDocument 401/log_request.php
我不知道FilesMatch“^(?!log\u request.php.*$”行的函数是什么,只是文件应该匹配。当我尝试查看.htpasswd文件时,会出现内部服务器错误。请尝试以下代码:
<FilesMatch "^(?!.*?log_request\.php).*$">
AuthUserFile /protect/.htpasswd
AuthName "Tester's test test"
AuthType Basic
Require valid-user
</FilesMatch>
ErrorDocument 401 /log_request.php
您可以使用ErrorDocument 401/log_request.php将所有这些请求发送到某个php脚本。
查看本教程了解更多信息:您是否查看了日志?
/protect/.htpasswd
是否存在(作为一个绝对路径-而不是相对路径)?是的,它应该是一个绝对路径您做了什么更改,为什么要这样做?我试图真正理解我所看到的。为什么第一行的log_请求的斜杠是倒过来的呢?更改在regex:“^(?!*?log_请求\.php)中.*$
确保在请求URI中的任何位置否定匹配log\u request\.php
。*?
贪婪地匹配它之前的任意文本。啊,好吧,但我仍然收到内部服务器错误。我试图直接从网站访问.htaccess和.htpasswd,以便目录正确。Do.htaccess/.htpasswd需要特定权限吗?刚刚测试,删除.htaccess的filematch部分会将消息从内部服务错误更改为仅禁止.htaccess和.htpassword,但未发送任何身份验证。您需要Error.log以了解500错误的实际原因。filematch
工作正常,我已经对其进行了测试。问题可能在您的密码文件中。
SetEnvIfNoCase Request_URI "^/(?!log_request\.php).*" HANDLE401
AuthUserFile /protect/.htpasswd
AuthName "Tester's test test"
AuthType Basic
Require valid-user
Satisfy any
Order allow,deny
Allow from all
Deny from env=HANDLE401