Redirect Nginx没有';t重定向“/&引用;至/index.php“;

Redirect Nginx没有';t重定向“/&引用;至/index.php“;,redirect,nginx,digital-ocean,Redirect,Nginx,Digital Ocean,即使在/etc/Nginx/sites available/default中添加了重定向,Nginx也不会将“/”端点重写为默认调用index.php location / { # try_files $uri $uri/ =404; try_files $uri $uri/ /index.php?q=$uri&$args; #index index.html index.htm index.php; #try_files

即使在/etc/Nginx/sites available/default中添加了重定向,Nginx也不会将“/”端点重写为默认调用index.php

location / {
        # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php?q=$uri&$args;
        #index  index.html index.htm index.php;
        #try_files $uri $uri/ /index.php?$args;
    }
当我访问我的site.com时,我得到了403禁止,但它在我的site.com/index.phpmysite.com/phpmyadmin/index.php上正常工作。此外,重定向似乎适用于index.html,但不适用于index.php

/etc/nginx/可用站点/默认

server {
    listen 80;
    listen [::]:80;
    server_name my-site.com www.my-site.com;
    return 301 https://$server_name$request_url;
}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        include snippets/ssl-my-site.com.conf;
        include snippets/ssl-params.conf;

        root /var/www/html;

        index index.php index.html index.htm index.nginx-debian.html;

        server_name my-site.com;

        location / {
                # try_files $uri $uri/ =404;
                #try_files $uri $uri/ /index.php?q=$uri&$args;
               try_files $uri $uri/ /index.php?q=$uri&$args;
               #index  index.html index.htm index.php;
               #try_files $uri $uri/ /index.php?$args;
        }

        location ~ [^/].php(/|$) {
                fastcgi_split_path_info ^(.+?.php)(/.*)$;
                if (!-f /var/www/html$fastcgi_script_name) {
                    return 404;
                }

                include fastcgi_params;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
                #fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_read_timeout 300;
    }

    location ~ /.ht {
        deny all;
    }

    location ~ /.well-known {
        allow all;
    }

    location /phpmyadmin {
        index index.php;
    }

    # Rewrite rules for WordPress Multi-site.
    if (!-e $request_filename) {
            rewrite /wp-admin$ $scheme://$host$uri/ permanent;
            rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
            rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
    }
}

# redirect www to non-www
server {
    listen 443; 
    listen [::]:443;
    server_name www.my-site.com;

    return 301 https://my-site.com$request_uri;
}

我最近遇到了同样的问题,这可能是解决方案:

location / {
  try_files $uri $uri/index.php;
}

我最近遇到了同样的问题,这可能是解决方案:

location / {
  try_files $uri $uri/index.php;
}

似乎您可以停留在
位置/
w/o重定向。删除该
位置后,它会工作吗?使用
nginx-T
测试您的配置。该行为与您的配置不一致。您可能会停留在
位置/
w/o重定向。删除该
位置后,它会工作吗?使用
nginx-T
测试您的配置。该行为与您的配置不一致。