Nginx conf 文件位置和重写不起作用

Nginx conf 文件位置和重写不起作用

我在 nginx 上运行 magento。
我的根目录是/pub
但是有一些扩展试图链接到www.myurl.com/pub/xxx.file,所以我想将所有扩展重写/pub/

我的计划是www.myurl.com/pub/xxx.file成为www.myurl.com/xxx.file,但没有实现。

这是我的配置文件(这abcdefg是一个测试目录):

server {
    listen 443 ssl http2;
    server_name www.myurl.com ;
    index index.html index.htm index.php default.html default.htm default.php;
    root  /home/wwwroot/www.myurl.com/pub;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/www.myurl.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.myurl.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "myciphers";
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

    location /pub {
           rewrite /pub /;
    }

    location ^~/abcdefg {
           rewrite /abcdefg/ /1234567/;
    }

    include other.conf;
    if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php;
    }
    set $MAGE_MODE production;

    include enable-php.conf;

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

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

    #location ~ /\.
    #{
    #    deny all;
    #}

    access_log  /home/wwwlogs/shopkey.doyustudio.com.log;
    error_log  /home/wwwlogs/shopkey.doyustudio.com.error.log debug;
}

答案1

而不是设置root /home/wwwroot/www.myurl.com/pub;使用root /home/wwwroot/www.myurl.com/;,然后使用 try on dir 创建位置pub,如下所示

location / {
    try_files /pub/$uri $uri;
}

这表示首先在目录中搜索 $uri pub,如果不存在则尝试在root目录中搜索

相关内容