UOJ开原版对于当前域名的捕捉可能没有考虑到复杂的情况。于是,当我们挂上代理时,就404了。。
只要获取域名的时候判断一下就OK了!
在uoj/1/app/models/UOJContext.php文件中,把
$_SERVER['HTTP_HOST'];改成
isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');就OK了! 当然,如果你不想使用博客又同时想让多域名同时指向你的UOJ,那你可以去 app/.config.php 里面把
array ( 'protocol' => 'http', 'host' => 'local_uoj.ac', 'port' => 80 ),中的
'host' => 'local_uoj.ac',改成
'host' => isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''),
也是可以的。
(如果你想在博客里面这么干的话,你等同于作死,它会循环重定向的!)