2016-09-06 9 views
2

私は以下のすべてのフォルダに1つを除いて全く同じ設定を保持したいと思います。フォルダ/ wp-adminでは、add_header Cache-Control "no-store";の設定を.phpファイルの場合はにする必要があります。Nginxで特定のヘッダーを単一のフォルダに設定する方法はありますか?

質問:
Nginxの特定のフォルダでのみ設定を変更するにはどうすればよいですか?

location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    fastcgi_index index.php; 
    include fastcgi.conf; 
    add_header Cache-Control "public"; 
    access_log off; 
} 

location [IF PHP FILE IN wp-admin FOLDER] { 
    add_header Cache-Control "no-store"; 
} 

location ~* \.(js|css|svg|png|jpg|jpeg|gif|ico|eot|otf|ttf|woff)$ { 
    add_header Access-Control-Allow-Origin *; 
    add_header Cache-Control "public"; 
    access_log off; 
    log_not_found off; 
    expires 1y; 
} 

答えて

1

PHPファイルを処理するロケーションブロックには、すべてのfastcgiパラメータとディレクティブが含まれている必要があります。要求処理については、this documentを参照してください。

私はこれをテストしていませんが、map指示文を使用して、add_headerステートメントの適切な値を選択できるはずです。例えば

map $request_uri $cc { 
    ~^/wp-admin "no-store"; 
    default  "public"; 
} 

server { 
    ... 
    location ~ \.php$ { 
     add_header Cache-Control $cc; 
     ... 
    } 
} 

詳細はthis documentを参照してください。

+0

恐ろしく、それは、感謝の仲間です –

関連する問題