Вот версия Javascript. Лучшее, что я мог сделать, это 497 символов при сжатии.
s = "", k = "ing, ", t = [":first:a:partridge in a pear tree",
":second:two:turtle doves, and ",
"th:ird:ree:french hens, ",
"four:th::calling birds, ",
"fi:fth:ve:gold rings, ",
"six:th::geese a-lay" + k,
"seven:th::swans a-swimm" + k,
"eight:h::maids a-milk" + k,
"nin:th:e:ladies danc" + k,
"ten:th::lords a-leap" + k,
"eleven:th::pipers pip" + k,
"twel:fth:ve:drummers drumm"]
for (i = 0; i < 12; i++)
document.write("On the " + (v = t[i].split(":"))[0] + v[1]
+ " day of Christmas my true love gave to me "
+ (s = v[0] + v[2] + " " + v[3] + s) + "<p>")
s="",k="ing, ",t=[":first:a:partridge in a pear tree",":second:two:turtle doves, and ","th:ird:ree:french hens, ","four:th::calling birds, ","fi:fth:ve:gold rings, ","six:th::geese a-lay"+k,"seven:th::swans a-swimm"+k,"eight:h::maids a-milk"+k,"nin:th:e:ladies danc"+k,"ten:th::lords a-leap"+k,"eleven:th::pipers pip"+k,"twel:fth:ve:drummers drumm"];for(i=0;i<12;i++)document.write("On the "+(v=t[i].split(":"))[0]+v[1]+" day of Christmas my true love gave to me "+(s=v[0]+v[2]+" "+v[3]+s)+"<p>")
Оказывается, не имеет значения, поставлю ли я перед index.php начальную / или нет. Если отключить его, скрипт будет работать правильно. Я тестировал с флагом R, который использовал физические каталоги для перенаправления.