mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-21 19:19:12 +01:00
Summary: Fixes T5702. The path here is long and windy: - I want to move `blog.phacility.com` to the new `secure` host. - That host has `security.require-https` set, which I want to keep set (before, this was handled in a sort of hacky way at the nginx/preamble level, but I've cleaned up everything else now). - Currently, that setting forces blogs to HTTPS too, which won't work. - To let blogs be individually configurable, we need to either modularize site config or make things hackier. - Modularize rather than increasing hackiness. - Also add a little "modules" panel in Config. See T6859. This feels like a reasonable middle ground between putting this stuff in Applications and burying it in `bin/somewhere`. Test Plan: - Visited normal site. - Visited phame on-domain site. - Visited phame off-domain site. - Viewed static resources. {F561897} Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T5702 Differential Revision: https://secure.phabricator.com/D13474
41 lines
939 B
PHP
41 lines
939 B
PHP
<?php
|
|
|
|
final class PhabricatorResourceSite extends PhabricatorSite {
|
|
|
|
public function getDescription() {
|
|
return pht('Serves static resources like images, CSS and JS.');
|
|
}
|
|
|
|
public function getPriority() {
|
|
return 2000;
|
|
}
|
|
|
|
public function newSiteForRequest(AphrontRequest $request) {
|
|
$host = $request->getHost();
|
|
|
|
$uri = PhabricatorEnv::getEnvConfig('security.alternate-file-domain');
|
|
if (!strlen($uri)) {
|
|
return null;
|
|
}
|
|
|
|
if ($this->isHostMatch($host, array($uri))) {
|
|
return new PhabricatorResourceSite();
|
|
}
|
|
|
|
// These are CDN routes, so we let them through even if the "Host" header
|
|
// doesn't match anything we recognize. The
|
|
$whitelist = array(
|
|
'/res/',
|
|
'/file/data/',
|
|
'/file/xform/',
|
|
);
|
|
|
|
$path = $request->getPath();
|
|
if ($this->isPathPrefixMatch($path, $whitelist)) {
|
|
return new PhabricatorResourceSite();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
}
|