2017-01-22 13 views
1

私は奇妙な問題に直面しています。 wp-adminのnginxサーバでパスワード保護を有効にしました しかし、パスワード保護を有効にすると、wp-admin WebページのPHP解析が停止します。パスワードはNginxサーバーのWordPressウェブサイトのサブフォルダを保護します

意味、私はユーザー名とパスワードを入力した後、私は、ログイン画面で処理されたHTMLを表示する代わりに、PHPファイルのソースコードをダウンロードすることができます。

これは私の設定ファイル 私は間違っていると教えてください?

server { 

    ... server stuff here .. 

    # Wordpress Rules 
    location/{ 
     try_files $uri $uri/ /index.php?$args; 
    } 

    location ^~ /wp-admin/ { 
     auth_basic "Restricted Access"; 
     auth_basic_user_file /home/user/domains/.htpasswd; 
    } 

    location ~ \.php$ { 
     include snippets/fastcgi-php.conf; 
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    } 

    location ~ /\.ht { 
     deny all; 
    } 

    # Cache control 
    location ~* \.(jpg|jpeg|png|gif|ico|svg|ttf)$ { 
     expires 365d; 
    } 
    location ~* \.(css|js)$ { 
     expires 30d; 
    } 

    # Enable "Vary-Accept-Encoding" headers 
    # They are enabled in the nginx.conf 
} 

パスワード保護を削除しても、すべて正常に機能し、管理パネルも正常に機能します。パスワードのブロックを正しく追加していないと思います。

答えて

1

おそらくhow nginx processes a requestを読む必要があります。

問題は、location ^~ /wp-admin/ブロックがPHPファイルを処理する方法がないことです。

これは動作しますが、ネストされたブロックを使用してみてください:

location ^~ /wp-admin/ { 
    auth_basic "Restricted Access"; 
    auth_basic_user_file /home/user/domains/.htpasswd; 

    location ~ \.php$ { 
     include snippets/fastcgi-php.conf; 
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    } 
} 

location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
} 
+0

これはトリックをしました。どうもありがとうございます。 – Sallu

関連する問題