【问题标题】:Nginx configuration for TYPO3 website in subdirectoryTYPO3 网站的 Nginx 配置在子目录中
【发布时间】:2021-07-28 19:41:10
【问题描述】:

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

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

#1537633463 OutOfRangeException

哈希不可解析

这是我的 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 配置中缺少什么,一般情况下有什么需要我批准的吗?

【问题讨论】:

    标签: nginx typo3 tx-news typo3-10.x


    【解决方案1】:

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

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      相关资源
      最近更新 更多