[Нужна помощь]С переводом htaccess в nginx config

а зачем я буду выкладывать файл виртуального хоста
Потому что реврайты применяются в конктексте server, location, if Для просмотра ссылки Войди или Зарегистрируйся
А вот это
и это
нгинкс+штацесс
дикая ересь.

я как понял надо примернно так:
Не так, а вот так (просто для примера, кусок твоего конфига виртуального сервера)
Код:
    location / {
        set $page_to_view "/index.php";
        try_files $uri $uri/ @rewrites;
        root /var/www/default;
        index index.php index.html index.htm;
        allow 127.0.0.1;
        deny all;
    }
   
    location /login {
        rewrite ^/login/*$ /index.php?p=login break;
        rewrite ^/login/register/*$ /index.php?p=login&mod=register break;
    }
   
    location ~*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
        expires max;
        log_not_found off;
        access_log off;
    }

    location ~ \.php$ {
        #try_files $uri =404;
        try_files = $uri @missing;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/default$page_to_view;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        #fastcgi_split_path_info ^(.+\.php)(.*)$;
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
Хотя формально можно реврайты сразу в server вписать, например сразу после строки index index.php; правила хорошего тона + с точки зрения производительности рекомендуется по-возможности обрезать запрос префиксным локейшеном, а уже в нем строить реврайты.
 
благодарю Для просмотра ссылки Войди или Зарегистрируйся !!!
ещё один вопрос возник,php отдаеться код для чтения из index.php вместо обработки,а при обращение к другим файла .php Access denied. подскажите куда копать?
 
Копать лог и конфиг, почему не доходит до регулярки
Код:
 location ~ \.php$
 
Код:
    location /login {
        rewrite ^/login/*$ /index.php?p=login break;
        rewrite ^/login/register/*$ /index.php?p=login&mod=register break;
    }
Тут флаг break остановит обработку так что запрос уже не попадёт в location ~ \.php$
Нужно break убрать совсем или поменять на last.

И ещё
Код:
        fastcgi_param SCRIPT_FILENAME /var/www/default$page_to_view;
поменять на
Код:
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 
Назад
Сверху