Как перенаправить из верхней подпапки в каталог root и передать этот каталог подпапки в качестве параметра - PullRequest
0 голосов
/ 23 марта 2020

У меня есть проблема, которую я не могу решить. У меня новый сайт, созданный на yii2. Мне нужно, чтобы старый URL с веб-сайтов людей правильно обрабатывался на моем конце.

Старый URL

domain.name/customer_name/index.php?parameters

Новый URL Я думаю, обрабатывать customer name у повара ie, чтобы иметь возможность динамически управлять всеми клиентами. поэтому мне нужно проверить nginx правило на локальном хосте и передать apache на удаленном. Вот новый URL:

domain.name/index?company=customer_name

Так что мой вопрос в том, как получить имя папки TOP из URL и использовать его как параметр при перенаправлении?

Что я пробовал до сих пор с простой тестовый php веб-сайт (не в конфигурации yii2):

root /var/www/Test;
    index index.php index.html index.htm;
    server_name test.local;

    #log errors in local folder
    error_log  /var/www/Test/logs/error.log error;

    client_max_body_size 32m;

    #redirect with param
    location /(\w+)/(.*)$ {
        rewrite ^ /index.php?company=$1 break;
    }

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ /index.php =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
    #location /RequestDenied {
    #   proxy_pass http://127.0.0.1:8080;    
    #}

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    #error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        try_files $uri $uri/ /index.php =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

    }

Итак, когда я пытаюсь получить доступ, скажем, domain.name/folder5/index.php (который не существует), я получаю ответ от domain.name/index.php, но без перенаправления.

Примечание Мне также нужно рассмотреть вопрос о сохранении доступа к папке images, расположенной в каталоге root, поэтому запрос не следует перенаправлять на /index.php?customer=images Вот как он обрабатывается прямо сейчас в yii2:

nginx config :

location / {
        root  /var/www/domain/frontend/web;
        try_files  $uri /frontend/web/index.php?$args;

        location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
            try_files  $uri /frontend/web/$1?$args;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...