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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем my_gold_biz, 30 июн 2020.

XEvil 4.0 Релиз Состоялся!
  1. my_gold_biz

    my_gold_biz Создатель

    Регистр.:
    24 фев 2020
    Сообщения:
    20
    Симпатии:
    2
    Подскажите как правильно перевести htaccess в nginx конфиг,в htaccess строки такого вида:
    RewriteRule ^login(/?)+$ /index.php?p=login [L]
    RewriteRule ^login/register(/?)+$ /index.php?p=login&mod=register [L]
    как их перевести в location,заранее благодарю за помощь!
     
  2. agnerfist

    agnerfist Создатель

    Регистр.:
    29 май 2020
    Сообщения:
    14
    Симпатии:
    2
    пробуй
     
  3. my_gold_biz

    my_gold_biz Создатель

    Регистр.:
    24 фев 2020
    Сообщения:
    20
    Симпатии:
    2
    пробывал не помогает,я как понял надо примернно так:
    Код:
    location /  {
                 index  index.php;
                 if (!-e $request_filename)
                 {
                   rewrite ^/(.*)$ /index.php?_route_=$1 last;
                 }
        }
    сижу пробую варианты разные да забыл указать конфиг nginx:
    user nginx;
    worker_processes 1;

    error_log /dev/null crit;
    pid /var/run/nginx.pid;

    events {
    worker_connections 1024;
    }

    http {
    include /etc/nginx/mime.types;
    #default_type application/octet-stream;
    server_tokens off;
    #sendfile on;
    #tcp_nopush on;
    #keepalive_timeout 65;
    #gzip on;
    #charset utf8;

    server {
    listen 127.0.0.1:80 default_server;
    server_name localhost;
    port_in_redirect off;
    root /var/www/default;
    index index.php;

    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 ~*.(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;
    }

    location @missing {
    rewrite ^ $scheme://$host/index.php permanent;
    }
    location @rewrites {
    if ($uri ~* ^/([a-z]+)$) {
    set $page_to_view "/$1.php";
    rewrite ^/([a-z]+)$ /$1.php last;
    }
    }
    }
     
  4. agnerfist

    agnerfist Создатель

    Регистр.:
    29 май 2020
    Сообщения:
    14
    Симпатии:
    2
    штацесс
    # Mod_security can interfere with uploading of content such as attachments. If you
    # cannot attach files, remove the "#" from the lines below.
    #<IfModule mod_security.c>
    # SecFilterEngine Off
    # SecFilterScanPOST Off
    #</IfModule>

    ErrorDocument 401 default
    ErrorDocument 403 default
    ErrorDocument 404 default
    ErrorDocument 405 default
    ErrorDocument 406 default
    ErrorDocument 500 default
    ErrorDocument 501 default
    ErrorDocument 503 default

    <IfModule mod_rewrite.c>
    RewriteEngine On

    # If you are having problems with the rewrite rules, remove the "#" from the
    # line that begins "RewriteBase" below. You will also have to change the path
    # of the rewrite to reflect the path to your XenForo installation.
    #RewriteBase /xenforo

    # This line may be needed to workaround HTTP Basic auth issues when using PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    </IfModule>
    nginx.conf
    user nginx;
    worker_processes auto;

    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;
    worker_rlimit_nofile 65535;
    events {
    worker_connections 1024;

    }

    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    charset utf-8;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 60;
    client_header_timeout 1m;
    client_header_buffer_size 2k;
    client_body_buffer_size 256k;
    client_max_body_size 256m;
    large_client_header_buffers 4 8k;
    send_timeout 30;
    reset_timedout_connection on;
    server_tokens off;
    server_name_in_redirect off;
    server_names_hash_max_size 512;
    server_names_hash_bucket_size 512;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_pass_header Set-Cookie;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    proxy_buffers 32 4k;


    proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m;
    proxy_cache_key "$host$request_uri $cookie_user";
    proxy_temp_path /var/cache/nginx/temp;
    proxy_ignore_headers Expires Cache-Control;
    proxy_cache_valid any 1d;


    gzip on;
    gzip_min_length 1100;
    gzip_buffers 64 8k;
    gzip_comp_level 3;
    gzip_http_version 1.1;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/css;
    open_file_cache max=1024 inactive=600s;
    open_file_cache_valid 2000s;
    open_file_cache_min_uses 1;
    open_file_cache_errors on;
    #tcp_nodelay on;
    output_buffers 2 64k;


    include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*;
    Так попробуй должно срабоать.
     
  5. my_gold_biz

    my_gold_biz Создатель

    Регистр.:
    24 фев 2020
    Сообщения:
    20
    Симпатии:
    2
    не это не то,да и htaccess вообщем не работает в nginx,только в связке nginx+apache,а у меня просто nginx+php-fpm,нужно составлять именно в локейшене.
     
  6. agnerfist

    agnerfist Создатель

    Регистр.:
    29 май 2020
    Сообщения:
    14
    Симпатии:
    2
    чего чего??? кто те сказал то что штацесс не работает в нгинкс??? у меня 7 лет форум работал пхп-фпм+нгинкс+штацесс xD и ноу проблем, я тебе конвертер выше скидывал для штацесс чтоб сконвертировал он для нгинкс именно. А так у тебя надо правильно настраивать конфиг нгинкс. Виртуальные хосты настраивай, в зависимсоти от ОС на серваке vps/vds

    Даже тут описано что и как:
    тыц
    Если есть проблемы с форумом(сайтом) пиши помогу
     
    Последнее редактирование: 30 июн 2020
  7. my_gold_biz

    my_gold_biz Создатель

    Регистр.:
    24 фев 2020
    Сообщения:
    20
    Симпатии:
    2
    написанно в манах по nginx,то что нет такого механизма как mod_rwrite - он только в апаче,ваш конфиг nginx.conf в нем вообще нет параметров виртуального хоста,а только опитимазация и настроики nginx,приложите файл include /etc/nginx/conf.d/*.conf;
     
  8. agnerfist

    agnerfist Создатель

    Регистр.:
    29 май 2020
    Сообщения:
    14
    Симпатии:
    2
    а зачем я буду выкладывать файл виртуального хоста? всё есть в доках и в гугле как и что настраивать https://www.digitalocean.com/community/questions/enabling-nginx-mod_rewrite
    Ещё раз говорю если проблемы с настройкой нгинкс + штацесс+пхп-фпм пиши помогу
     
  9. my_gold_biz

    my_gold_biz Создатель

    Регистр.:
    24 фев 2020
    Сообщения:
    20
    Симпатии:
    2
    читал это не помогает,и конвертор пробывал тоже не помог,да помоги буду благодарен!
     
  10. chameleoz

    chameleoz Создатель

    Регистр.:
    16 июл 2019
    Сообщения:
    11
    Симпатии:
    0
    rewrite объявляются в блоках server { }