Answer the question
In order to leave comments, you need to log in
How to configure NGINX to render pages correctly?
Good time!
After migrating the site from apache to nginx, any URL displays the content of the main page.
For example: site.com, site.com/page/, site.com/p_0Ljk
Installed NGINX, PHP-FPM, PHP7.2 I
suspect that the problem is the lack of some parameters in the NGINX config itself. I will be glad for any help. If not, please help and indicate what to fix to make the site work. Thanks in advance.
nginx config
server {
listen 01.23.45.67:443 ssl http2;
server_name site.com www.site.com;
root /home/user/workspace/sites/site.com;
if ($http_host ~ "^www\.(.*)$"){
set $http_host_1 $1;
rewrite ^(.*)$ https://$http_host_1/$1 redirect;
}
# ssl on;
ssl_certificate /etc/certs/user/site.com_10-07-2020_11:03:44_letencrypt.crt_v2;
ssl_certificate_key /etc/certs/user/site.com_10-07-2020_11:03:44_letencrypt.key;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE:!COMPLEMENTOFDEFAULT;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security 'max-age=604800';
access_log /etc/nginx/vhost_logs/site.com_access;
error_log /etc/nginx/vhost_logs/site.com_error;
location ~ /.well-known { allow all; }
# location ~* robots.txt { root /etc/nginx; }
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}
location / {
root /home/user/workspace/sites/site.com;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
location ~ \.php$ {
try_files $fastcgi_script_name =404;
root /home/user/workspace/sites/site.com;
#fastcgi_pass localhost:9009;
fastcgi_pass unix:/var/run/php-fpm/php72w-user.sock;
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/user/workspace/sites/site.com$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /home/user/workspace/sites/site.com$fastcgi_script_name;
fastcgi_buffers 8 64k;
fastcgi_buffer_size 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_connect_timeout 120;
fastcgi_read_timeout 900;
fastcgi_send_timeout 900;
fastcgi_cache off;
fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
fastcgi_cache_valid 200 10s;
limit_conn lfcgi 50;
#fastcgi_param SCRIPT_FILENAME /workspace/sites/site.com$fastcgi_script_name;
#fastcgi_param PATH_TRANSLATED /workspace/sites/site.com$fastcgi_script_name;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
}
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
Answer the question
In order to leave comments, you need to log in
The .htaccess file, as it turned out, had the following rules:
RewriteRule ^page/([0-9]+)/$ index.php?page=$1 [L,QSA]
RewriteRule ^cat/([0-9]+)/(.*)/([0-9]+)/$ cat.php?id=$1&name=$2&page=$3 [L,QSA]
RewriteRule ^cat/([0-9]+)/(.*)/$ cat.php?id=$1&name=$2 [L,QSA]
RewriteRule ^collections/$ collections.php [L,QSA]
RewriteRule ^collections/([0-9]+)/$ collections.php?page=$1 [L,QSA]
RewriteRule ^search/(.*)/([0-9]+)/$ search.php?q=$1&page=$2 [L,QSA]
RewriteRule ^search/(.*)/$ search.php?q=$1 [L,QSA]
rewrite ^/page/([0-9]+)/$ /index.php?page=$1 last;
rewrite ^/cat/([0-9]+)/(.*)/([0-9]+)/$ /cat.php?id=$1&name=$2&page=$3 last;
rewrite ^/cat/([0-9]+)/(.*)/$ /cat.php?id=$1&name=$2 last;
rewrite ^/collections/$ /collections.php last;
rewrite ^/collections/([0-9]+)/$ /collections.php?page=$1 last;
rewrite ^/search/(.*)/([0-9]+)/$ /search.php?q=$1&page=$2 last;
rewrite ^/search/(.*)/$ /search.php?q=$1 last;
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question