書き換えとア​​クセス制御のためにnginxを正しく設定してください。

書き換えとア​​クセス制御のためにnginxを正しく設定してください。

これは私の現在のnginx設定です。

server_name  web.com;
server_tokens off;

root /usr/share/nginx/html/web;
index index.php;   

if ( $request_uri ~ "/index.(php|html?)" ) {
rewrite ^ /$1 permanent;
}

location / {   
try_files $uri $uri/ /index.php?$args =404; 
}

error_page   404              /404.html;
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}


location ~ /\.ht {
    deny  all;
}   

location ~ \.php$ {
    try_files  $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

私がやろうとしていること:

  1. web.com?page=somepage&other_arg=arg&..として書き直されましたweb.com/somepage/arg/...

私の方法は動作しません。時々エラーが発生します。failed (104: Connection reset by peer) while reading response header from upstreamまたはaccept4() failed (24: Too many open files)

  1. ルートフォルダのindex.phpへの直接アクセスは、ブラウザのURLを介してのみ許可されます。他のファイルやディレクトリはブラウザからアクセスできません。 (ただし、GET、POSTなどを通じてアクセスできます。)

ディレクティブを使用しましたinternalが、期待どおりに機能しますが、index.phpの例外を設定できませんでした。

誰でも最善のアプローチを提案できますか?

関連情報