私はいくつかの文書を見ていますが、なんらかの理由で私がやろうとしていることに必要な構成を頭で覆すことはできません。基本的に私がしたい:Nginxの設定
すべてのディレクトリ要求は、そのURLを保つ必要がありますが、すべての.js、.cssの、.JPEGと.PNGファイルは(/ jsのそれぞれのディレクトリにindex.phpを
によって処理されます/、/ css /、/ images /)は、PHP処理なしで提供されるべきです。
その他のファイルへのアクセスはすべて拒否されます(すべての.phpを含む)。
私は.PHP処理のための場所を設定しようとしましたが、私はそれが正しく動作して取得する方法を見つけ出すことはできません。私はそれを維持するつもりだが、いくつかの迅速なヘルプも期待していた:)
ありがとう!
編集2:私はまともなものを思いついたと思います。完璧ではないかもしれませんが、うまくいくはずです。
server {
listen 80;
server_name _;
server_tokens off;
root /mypath/www;
access_log /mypath/access.log;
error_log /mypath/error.log;
index index.html;
location ^~ /app {
return 404;
}
location ~ \.conf {
return 404;
}
location ~ \.php {
return 404 ;
}
location ~ /images/.*.(jpg|jpeg|png|gif) {
try_files $uri $uri = 404;
expires max;
}
location ~ /css/.*.css {
try_files $uri $uri = 404;
expires 1d;
}
location ~ /js/.*.js {
try_files $uri $uri = 404;
expires 1d;
}
location/{
try_files $uri @PHPProxy;
error_page 500 501 502 503 504 505 $document_root/error.html;
}
location @PHPProxy {
include fastcgi_params;
fastcgi_pass unix:/tmp/php.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
}
これは私がやっていたことに似ていますが、もっと考え抜かれています。私は明日これを撃つだろう。ありがとう! – Kris
おそらく、 "書き換え"の代わりに "try_files"指示文を使用するべきです。 IMOそれはあなたが探しているもののためだけに作られています:) http://wiki.nginx.org/HttpCoreModule – conradkdotcom
@conradk前にサイトでtry_filesを使用しましたが、私は彼が探していたものかどうかはわかりません。彼は、指定されたフォルダ以外のファイルは拒否され、try_filesはそれらを通過させたがっていました。あなたが 'try_files $ uri/index.php $ uri'のようなものを持っているときは、とにかく内部的に書き直しをします。今、もし私が特定のフォルダだけを許可し、/index.php上の他のすべてを試してみると、それはかなり素晴らしいでしょう。 – Nenoco