2017-10-11 13 views
0

これらの設定が正しく動作するサーバー(nginx/1.6.0 PHP 5.5.14)があります。問題は、使用しているときですlocation ^~ /sys/ sysフォルダにアクセスしようとするとインデックスがダウンロードされます。私がlocation ^~/sys /を正常に動作するように取り除くと。彼はPHPファイルでのみエラーが発生します。 htmlファイルは正常に動作します。エラーはどこですか?Nginxダウンロードファイル

server { 
    server_name site.com; 
    root /home/www/site.com; 
    index index.php index.html index.htm; 

    location/{ 
     index index.php index.html; 
     try_files $uri $uri/ /index.php; 
    } 

    location ~ [^/]\.php(/|$) { 
     fastcgi_pass unix:/data/php5514/var/run/php5-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_read_timeout 300; 
     include fastcgi_params; 
    } 

    location ^~ /sys/ { 
    } 
} 

私はスクリプトを使用しており、不正なアクセスからフォルダを保護するために、この設定をnginxで行う必要があります。

location ^~ /FOLDER/ { 
    if ($cookie_amember_nr !~* [a-zA-Z0-9]+) { #not authorized 
     rewrite ^(.*)$ http://EXAMPLE.COM/AMEMBER/protect/new-rewrite?f=FOLDERID&url=$request_uri?$args redirect; 
    } 
    set $file $document_root/AMEMBER/data/new-rewrite/$cookie_amember_nr-FOLDERID; 
    if (!-f $file) { #have not access 
     rewrite ^(.*)$ http://EXAMPLE.COM/AMEMBER/no-access/folder/id/FOLDERID?url=$request_uri?$args redirect; 
    }  
    #everything is ok 
} 

しかし、location^~のこの問題は機能しません。

+0

**プロフェッショナルなサーバーまたはネットワーク関連のインフラストラクチャ管理**についての質問は、プログラミングやプログラミングツールに直接関わらない限り、スタックオーバーフローに関するトピックではありません。 [サーバー障害](http://serverfault.com/about)に関するヘルプを得ることができます。 – icecub

答えて

0

実際に期待する内容をさらに詳しく説明する必要があります。

あなたが/ SYS /にPHPのコンテンツを提供したいと仮定すると、あなたもそうのようなこの場所の文脈でfastcgi_passブロックを置く必要があります。

location ^~ /sys/ { 
    fastcgi_pass unix:/data/php5514/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_read_timeout 300; 
    include fastcgi_params; 
} 

それはあなたが望むなら、あなたはpropably使用したいと思いますupstream

upstream php { server unix:/data/php5514/var/run/php5-fpm.sock; } 

location ^~ /sys/ { 
    fastcgi_pass http://php; 
} 

Oとして参照n both /すべてのロケーションブロックがPHPに対応しています。

正確な位置は、あまり正確ではない/ほぼ一致して勝つことを忘れないでください。 /sys/something.phpへのあなたのGET要求が、php-locationブロックと一致するのではなく、/ sys-locationブロックと一致する可能性があります。 とにかく、別のルートのように何かを置かないと、sys-locationブロックの使用は何ですか?

+0

私は/ sys /フォルダから期待しているのは、ファイルとサブフォルダにアクセスしようとすると、ファイルのダウンロードとともに返されないということです。 –

+0

どのファイルですか? PHP? – roothahn

関連する問題