0

我想在一个域上同时运行 WordPress 和 YOURLS。

由于两者都需要以不同的方式处理 URL,因此它们需要不同的 try_files 指令。WordPress 位于域的根目录 (domain.tld),而 YOURLS 被安装到 /go/ 目录。

尽管有两个位置规则,但我在 YOURLS 生成的任何链接(例如 domain.tld/g/linkname,都是重定向到外部 URL)上得到 404,尽管我可以访问 YOURLS 管理后端。

据我所知,声明位置规则(一个用于 /go/,一个用于 /)应该足以让 Nginx 以不同方式处理直接和 /go/ URL - 我的想法有什么问题吗?

我在 Nginx 配置中添加了以下内容:

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

location /go/ {
try_files $uri $uri/ /go/yourls-loader.php$is_args$args;
}

我错过了什么?

4

1 回答 1

0

不确定它是否会对您有直接帮助。我试图使用指向 yourls docker 的子目录进行类似的配置经过多次点击和试验,以下设置对我有用。也许它的某些部分可能对某人有用。

location ~ (\/shorturl\/.*) {
    if ( $uri ~ ^\/shorturl\/((admin|images|js|css)(\/?)(.*)|.*.(\.html|\.php)) ) {
            rewrite /shorturl(/?)(.*) $1$2 break;
    }
    rewrite (\/shorturl\/.*) $1 break;
    proxy_pass http://localhost:9091;
    proxy_redirect / /shorturl/;
}

PS:我知道是否是邪恶的,请根据您的需要添加代理标头!

于 2021-05-25T03:22:43.787 回答