이것은 내 현재 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에 대한 예외를 설정할 수 없습니다.
누구든지 최선의 접근 방식을 제안할 수 있습니까?