Удалить начальную косую черту NGINX


В моем URL-адресе есть двойная косая черта (что не идеально).

Итак, мое приложение попало в //signup.

Сообщение об ошибке:

Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET //signin""

В любом случае, чтобы изменить его на просто /signup?

Я попробовал ниже в первом блоке местоположения (который ловит прокси-сервер).

Может быть, что-то в этом роде...

location /apps/phpauthentication/1 {      
        rewrite  ^\//(.*)/$  /$1 break;  
        try_files $uri /app_dev.php$is_args$args;
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /app_dev.php last;
        }
    }

Полная конфигурация:

server {
    listen 80;
    server_name localhost;

    root /srv/http/web;
    index app_dev.php index.php index.html;  

    location /apps/phpauthentication/1 {
        rewrite ^\//(.*)/$ /$uri permanent;
        try_files $uri /app_dev.php$is_args$args;
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /app_dev.php last;
        }
    }

    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass app:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_param APP_ENV dev;
        include        fastcgi_params;
    }

    location ~ \.php$ {
       fastcgi_pass   app:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       fastcgi_param APP_ENV dev;
       include        fastcgi_params;
    }
}

Спасибо:)

Author: Kal, 2016-01-15

1 answers

Я добился успеха с изменением URI на серверной части при обработке со следующим.

     location /apps/phpauthentication/1 {
       rewrite ^(.*)//(.*)$ /$1/$2 permanent;  ##First matches double slash and rewrites
       try_files $uri /app_dev.php$is_args$args;  ##URI is now /apps/1/signup
       if (!-e $request_filename) {
           rewrite ^/(.*)$ /app_dev.php last; ## Matches all request that pass from above
       }

Теперь URL-адрес в браузере никогда не меняется, но теперь у внутреннего сервера, похоже, есть допустимый путь.

 1
Author: SmileIT, 2016-01-15 16:44:03