Назад | Перейти на главную страницу

Необычные символы не загружаются в статический кеш Nginx Drupal Boost

(Установка: Drupal 6.20, Boost 1.18, Nginx 0.7.67)

Когда URL-адрес усиленного узла содержит символ или 中国新闻网新闻中心, узел правильно кэширован в каталоге кэша и правильно отражает URL-адрес.

Но при доступе к узлу вместо этого загружается некэшированный узел.

Ниже приведены правила Nginx, которые я использую:

server {
    server_name *.com *.net *.org;
    location / {
        root   /var/www/html/$host;
        index  index.php;
        set $boost "";
        set $boost_query "_";
        if ( $request_method = GET ) {
          set $boost G;
        }
        if ($http_cookie !~ "DRUPAL_UID") {
          set $boost "${boost}D";
        }
        if ($query_string = "") {
          set $boost "${boost}Q";
        }  
        if ( -f $document_root/cache/normal/$host$request_uri$boost_query.html ) {
          set $boost "${boost}F";
        }
        if ($boost = GDQF){
          rewrite ^.*$ /cache/normal/$host/$request_uri$boost_query.html break;
        } 
        if (!-e $request_filename) {
          rewrite  ^/(.*)$  /index.php?q=$1  last;
          break;
        }
    }
    location ~ \.php$ {
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME /var/www/html/$host$fastcgi_script_name;
            include         fastcgi_params;
    }
}

Я пробовал добавить charset utf-8; под http { и под server {. Оба они не работают.

Попробуйте использовать $ uri вместо $ request_uri в ваших ifs. $ request_uri не обрабатывается, поэтому% закодированных объектов все еще закодированы. $ uri был декодирован, возможно, это то, что вам нужно.