これは私の現在の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;
}
私がやろうとしていること:
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)
- ルートフォルダのindex.phpへの直接アクセスは、ブラウザのURLを介してのみ許可されます。他のファイルやディレクトリはブラウザからアクセスできません。 (ただし、GET、POSTなどを通じてアクセスできます。)
ディレクティブを使用しましたinternal
が、期待どおりに機能しますが、index.phpの例外を設定できませんでした。
誰でも最善のアプローチを提案できますか?