我有一个用于开发目的的域名。在这个域中,我有几个具有不同wordpress安装的子目录。 为了隐藏整个区域,我在根目录中进行了简单的htpasswd保护。
现在我在域中使用了一个Wordpress,它使用timthumb库来调整图像大小,由于htpasswd,我得到了" NetworkError:400 Bad Request"而不是图像。
这是获取错误的请求的示例
http://subdomain.domain.com/WP/wp-content/plugins/plugin-directory/timthumb.php?src=http%3A%2F%2Fsubdomain.domain.com%2FWP%2Fwp-content%2Fuploads%2F2015%2F01%2F012015_valentines_hp_budvase.jpg&w=300&h=620&zc=1
有没有办法绕过该文件的保护?
有关我更好地阅读.htaccess片段的更多细节:
我试过了:
SetEnvIf Request_URI "^/WP/wp-content/plugins/plugin-dir/timthumb\.php$" allow
AuthType Basic
AuthName "Restricted Area"
AuthUserFile "/home/some-folder/.htpasswds/public_html/subdomain_folder/passwd"
Require valid-user
Order allow,deny
Allow from env=allow
Satisfy any
更新
有人告诉我,允许访问timthumb.php文件是没有意义的,相反我应该允许他发出http请求,或允许完全访问上传文件夹,所以,我试过以下,允许来自localhost ip的请求
AuthType Basic
AuthName "Reserverd Area"
AuthUserFile "/home/some-folder/.htpasswds/public_html/subdomain_folder/passwd"
Require valid-user
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Satisfy Any
尝试了localhost和127.0.0.1
我甚至尝试在单个WP上传文件夹中添加另一个.htaccess(其中timthumb请求图片),规则允许来自任何
Satisfy Any
Order Allow,Deny
Allow from all
仍然我不能'显示图像,我不断收到NetworkError:400 Bad Request"而不是图像。
最后一个细节,WP目录中的.htaccess是标准的wp htaccess - > pastebin.com/8PRqEYQ2
答案 0 :(得分:0)
我找到了解决方案。
正确的方法确实允许来自服务器本身的请求,但localhost IP(127.0.0.1)不是允许的正确地址。 我做了反向IP查找,搜索我所在的域名,并使用了该IP。
这是工作的.htaccess
RewriteEngine On
<IfModule mod_authn_file.c>
AuthName "Restricted Area"
AuthUserFile "/home/path-to-passfile/passwd"
AuthType Basic
Require valid-user
Order Deny,Allow
Deny from all
# Use your server ip:
Allow from 111.111.111.11
Satisfy Any
</IfModule>
根据这条规则,我可以在.htpasswd受保护目录中使用timthumb.php开发应用程序。
欢迎批评和改进:)