Удалить начальную косую черту 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;
}
}
Спасибо:)
3
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