将根目录重定向到 nginx 下的 WordPress 子文件夹

将根目录重定向到 nginx 下的 WordPress 子文件夹

我最近买了一个带 nginx 的 VPS,并将我的 WordPress 实例移过来。浏览一番后,我让永久链接正常工作。博客位于一个blog文件夹中。

我希望将请求example.com重定向到example.com/blog。但是,请求example.com/doc/...应该不是被重定向至example.com/blog/doc/...

我已经寻找过其他问题/答案,但它们都导致了无限重定向循环。

这是当前配置:

server {
    listen 80;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /usr/share/nginx/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html index.php;

    server_name mysite.com;

    location / {
            # Redirect to /blog
    }

    location /blog/ {
            try_files $uri $uri/ /blog/index.php?$args;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    location ~ /\.ht {
            deny all;
    }

    # pass the PHP scripts to FastCGI server listening on the php-fpm socket
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;

    }
}

```

答案1

用这个:

location = / {
    return 301 http://example.com/blog;
}

这里的关键是=,这使得 nginx 仅将此规则应用于到达根文件夹的请求,而不应用于其他任何地方。

相关内容