У меня есть приложение Symfony по адресу mysite.com
и приложение WordPress по адресу mysite.com/blog
:
server {
server_name mysite.com;
root /var/www/mysite/symfony/web;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
internal;
}
location /blog {
root /var/www/mysite/wordpress;
rewrite ^/blog/(.+)$ /$1 break;
try_files $uri $uri/ /blog/index.php$is_args$args;
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_split_path_info ^(?:\/blog\/)(.+\.php)(.*);
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
access_log /var/log/nginx/mysite.com-access.log;
error_log /var/log/nginx/mysite.com-error.log;
}
Когда я получаю доступ к своему маршруту блога (mysite.com/blog
), nginx 301 перенаправляет на добавление завершающей косой черты (mysite.com/blog/
). Есть ли способ избежать этого перенаправления? Я заметил, что этого не происходит с Symfony - mysite.com/admin
работает отлично.
Я пробовал добавить rewrite ^/(.*)/$ /$1;
, но это просто приводит к циклу перенаправления.
Завершающий слэш добавлен WordPress. Вы можете отключить его, перейдя в свой WordPress Settings -> Permalinks
, выберите настраиваемую структуру и удалите косую черту в конце.