0

我在配置 nginx 以从一个域同时为 Xenforo 和 MODx 提供服务时遇到了很大的困难。我已经尝试了数百次调整,阅读了我所能阅读的所有内容,并且几乎让它正常工作......但没有雪茄。

问题的症结似乎是 MODx 重写劫持了我的 xenforo /xf/ 位置,并且没有 /xf/ URL 可以解决任何问题,而是触发 MODx 默认 404 错误页面。

完整的服务器块是;

server {

## HTTPS server essentials
listen  443;
server_name  www.mysite.com.au;

## Common Server block SSL config 
include "/opt/bitnami/nginx/conf/bitnami/ssl-apps.conf";    



## Xenforo location
location ^~  /xf/   {
    root /opt/bitnami/apps/xenforo;

    ## SEO friendly urls    
    try_files $uri $uri/ /xf/index.php?$uri&$args;

    location ~ \.(php)$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_read_timeout 300;
        fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
        fastcgi_index index.php;
        fastcgi_ignore_client_abort on;
        fastcgi_param  SCRIPT_FILENAME $request_filename;
        include fastcgi_params;
    }

}


## MODx 
root /opt/bitnami/apps/mysite.com.au/htdocs;

try_files $uri $uri/ ;

    location ~ \.(php|html)$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_read_timeout 300;
    fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
    fastcgi_index index.php;
    fastcgi_ignore_client_abort on;
    fastcgi_param  SCRIPT_FILENAME $request_filename;
    include fastcgi_params;
    }

    if (!-f $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
    }

}

但是,如果我将 MODx 正则表达式改写为;

 ^/(.*).html$ 

然后 100% 的 xenforo URI 解析,除了没有尾随 /index.html 的 MODx 目录uri 之外,几乎所有内容都无法解析(即 www.mysite.com.au/content1/ 将失败)。

我研究了级联优先级的迷宫,并承诺在过去 10 小时内测试至少 80 种或更多变体。无论我尝试什么,我都无法通过 MODx 重写获得 /xf/ 路径。

我需要解决目录路径有很多原因,其中最重要的是多年的 SEO 工作。

任何建议表示赞赏

4

1 回答 1

0

让它工作;

rewrite ^/(.*).html$ /index.php?q=$1 last;
于 2017-10-30T00:59:11.157 回答