1

開発目的で使用するドメインがあります。このドメインには、さまざまなワードプレスがインストールされたいくつかのサブディレクトリがあります。領域全体を非表示にするために、ルートに単純な htpasswd 保護を作成しました。

現在、timthumb ライブラリを使用して画像のサイズを変更するこの Wordpress の 1 つがドメインにあり、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 は、「subdomain_folder」内の「WP」というサブディレクトリにあります。
  • 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 アップロード フォルダー (timthumb が画像を要求する場所) に別の .htaccess を追加しようとしました。

Satisfy Any
Order Allow,Deny
Allow from all

それでも画像を表示できず、画像の代わりに NetworkError: 400 Bad Request が表示され続けます。

最後の詳細、WP ディレクトリの .htaccess は標準の wp htaccess --> pastebin.com/8PRqEYQ2

4

1 に答える 1

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 を使用してアプリを開発できます。

批判と改善は大歓迎です:)

于 2015-01-29T10:25:18.270 に答える