一個靜態的html文件,我自定義的清漆500錯誤頁面,但我發現它不能顯示中國文字,是有辦法來顯示自定義的清漆ERR頁中國文字,或顯示在清漆
我想提供一個從靜態文件錯誤頁,但它不工作 User-friendly error pages from Varnish
一個靜態的html文件,我自定義的清漆500錯誤頁面,但我發現它不能顯示中國文字,是有辦法來顯示自定義的清漆ERR頁中國文字,或顯示在清漆
我想提供一個從靜態文件錯誤頁,但它不工作 User-friendly error pages from Varnish
是相關的varnish.vcf全部分
C{
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
}C
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
set obj.http.Retry-After = "5";
if ((obj.status == 500 || obj.status == 503)&&client.ip !~ flnet){
C{
FILE *infile;
char *buffer;
char fname [50];
long numbytes;
sprintf(fname, "/var/www/html/%d.html", VRT_r_obj_status(sp));
infile = fopen(fname, "r");
if(infile == NULL)
return 1;
fseek(infile, 0L, SEEK_END);
numbytes = ftell(infile);
fseek(infile, 0L, SEEK_SET);
buffer = (char*)calloc(numbytes, sizeof(char));
fread(buffer, sizeof(char), numbytes, infile);
fclose(infile);
VRT_synth_page(sp, 0, buffer, "<!-- XID: ", VRT_r_req_xid(sp), " -->", vrt_magic_string_end);
free(buffer);
return 0;
}C
}
的example you're pointing to操縱與sprintf和strcat的文件內容,這可能不會對UTF-8很好地工作(你的文件是UTF-8像標題狀態,對不對?)。你可以使用像memcpy這樣的基於字節的C函數來測試你的運氣,或者使用UTF-8驗證字符串複製/格式化函數(從不用C處理這些東西)。
你能描述一下它不工作嗎更詳細?
下面
感謝答覆,很抱歉我沒有反饋,直到now.I位於C是新的,但是經過大量的調試和跟蹤,這問題已經解決,下面是varnish.vcf中相關的完整部分 –