我在 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
目录中搜索