允许Timthumb在受htpasswd保护的Wordpress中工作

时间:2015-01-26 16:44:18

标签: wordpress .htaccess .htpasswd timthumb

我有一个用于开发目的的域名。在这个域中,我有几个具有不同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片段的更多细节:

  • 我在子域名中指向了一个名为' subdomain_folder'
  • 的子目录 我正在处理的
  • .htaccess位于' subdomain_folder'
  • WP位于名为' WP'的子目录中。在' subdomain_folder'
  • WP的完整路径:' / home / some-folder / public_html / subdomain_folder / WP
  • 上传的完整路径:' / home / some-folder / public_html / subdomain_folder / WP / wp-content / uploads

我试过了:

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

1 个答案:

答案 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开发应用程序。

欢迎批评和改进:)