.htaccess to nginx

12
lonelywoolf
На сайте с 23.12.2013
Offline
151
#11

Сдаюсь. Можно полный конфиг nginx в личку?

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
J
На сайте с 20.02.2014
Offline
120
jkm
#12

Dram, а в php скрипте из какой переменной берётся адрес $_SERVER['REQUEST_URI'] или $_SERVER['PATH_INFO']?

Ну и в настройках nginx глянуть как задаётся fastcgi_param PATH_INFO.

D
На сайте с 28.06.2008
Offline
1101
#13

Да,вероятно дело в PATH_INFO

var_dump('PATH_INFO', key_exists('PATH_INFO', $_SERVER));

выдал bool(false)

Сделал поиск по сайту, нашел такой кусок

public static function uripath()
{
$path = vars::server('PATH_INFO');
return $path ? trim($path, '/') : 'index';
}

Добавление в конфиг Nginx

fastcgi_split_path_info ^(.+?\.php)(.*)$;

результата не дало. Что можно еще попробовать?

J
На сайте с 20.02.2014
Offline
120
jkm
#14

Так там еще и сам шаблон в location поправить \.php$ на \.php($|/)


location / {
try_files $uri /index.php$uri;
}

location ~ \.php($|/) {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
D
На сайте с 28.06.2008
Offline
1101
#15

jkm, теперь

var_dump('PATH_INFO', key_exists('PATH_INFO', $_SERVER));

выдает ТРУ

но на всех страницах сайта 500 ошибка, вернул

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

стало опять - показывать только главную на всех адресах

вот весь конфиг

server {
server_name 5.com www.5.com;
listen 80;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443 ssl http2;
server_name 5.com www.5.com;
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ https://$host_without_www$1 permanent;
}

ssl_certificate /etc/letsencrypt/live/5.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/5.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

#access_log off;
access_log /var/log/nginx/5.access.log ;
error_log /var/log/nginx/error.5.log crit;

root /var/www/5.com;
index index.php index.html index.htm default.html default.htm;

# Support Clean (aka Search Engine Friendly) URLs
location / {
try_files $uri $uri/ /index.php?$args;
}

# caching of files
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt|ico|pdf|flv)$ {
error_page 404 = @fallback;
expires 30d;
}


# php files
location ~ \.php$ {

include fastcgi_params;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_index index.php;
fastcgi_read_timeout 30;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

}
J
На сайте с 20.02.2014
Offline
120
jkm
#16
Dram:
# php files
location ~ \.php$ {

 location ~ \.php($|/) {
D
На сайте с 28.06.2008
Offline
1101
#17

jkm, попробовал - без эффекта

---------- Добавлено 25.07.2019 в 20:39 ----------

о!!!!

location / {
try_files $uri /index.php$uri;
}

Это помогло!!! Спасибо! А может все вместе...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий