web-dev-qa-db-ja.com

Nginxconfファイルの場所と書き換えが機能していません

Nginxでmagentoを実行しています。
私のルートは/pubです
しかし、www.myurl.com/pub/xxx.fileにリンクしようとしている拡張機能がいくつかあるので、すべての/pub/に書き直したいと思います。

私の計画はwww.myurl.com/pub/xxx.filewww.myurl.com/xxx.fileにすることでしたが、機能していません。

これが私のconfファイルです(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/;を使用してから、次のようにpubdirを試して場所を作成します。

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

これは、最初にpubディレクトリで$ uriを検索することを意味します。存在しない場合は、rootディレクトリで試してください。

1
Diego Velez