微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

子目录中TYPO3网站的Nginx配置

如何解决子目录中TYPO3网站的Nginx配置

我需要在 Nginx 上的域子目录中运行一个 TYPO3 网站:example.com/subdir

对于普通页面,该网站运行良好,但对于带有 tx_news-records 的页面却运行良好。一旦我调用新闻详细信息页面 (example.com/subdir/detailpages/slug-of-news-record.html),我就会收到以下错误

#1537633463 超出范围异常

无法解析哈希

这是我的 Nginx 配置:

location ^~/subdir {
    alias /var/www/html/subdirectory;
    disable_symlinks off;
    index index.PHP index.html index.htm;

    try_files $uri $uri/ @subdir;

    location ~ \.PHP$ {
        include /etc/Nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/var/run/PHP/PHP7.4-fpm.sock;
    }

    location ~* ^/subdir/fileadmin/(.*/)?_recycler_/ {
        deny all;
    }

    location ~* ^/subdir/typo3conf/ext/[^/]+/Resources/Private/ {
        deny all;
    }
    
    location ~* ^/subdir/(fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
    }
}

location @subdir {
    rewrite /subdir/(.*)$ /subdir/index.PHP?/$1$is_args$args last;
}


location ~* ^/subdir/(.*$) {
    return 301 /subdir/$1;
}

我的 Nginx 配置中缺少什么,是否有一些一般需要我批准的内容

解决方法

经过反复试验,我自己找到了解决方案。以下配置对我有用:

location ^~/subdir {
    alias /var/www/html/subdirectory;
    disable_symlinks off;
    index index.php index.html index.htm;

    try_files $uri $uri/ @subdir;

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~* ^/subdir/fileadmin/(.*/)?_recycler_/ {
        deny all;
    }

    location ~* ^/subdir/typo3conf/ext/[^/]+/Resources/Private/ {
        deny all;
    }
    
    location ~* ^/subdir/(fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
    }
}

location @subdir {
    rewrite /subdir/(.*)$ /subdir/index.php?$args last;
}


location ~* ^/subdir/(.*$) {
    return 301 /subdir/$1;
}

和往常一样,这只是一个小小的变化。

location @subdir {
    rewrite /subdir/(.*)$ /subdir/index.php?/$1$is_args$args last;
}

改为

location @subdir {
    rewrite /subdir/(.*)$ /subdir/index.php?$args last;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。