我正在使用Silex项目,并在使用代理调用网站时遇到错误网址的问题。
没有代理的Sitename:http://sitename.com/someFile.php
使用代理进行Sitename:https://sslsites.com/sitename.com/someFile.php
$_SERVER['HTTP_X_FORWARDED_HOST']: 'sslsites.com'
我在index.php
中设置了受信任的代理Request::setTrustedProxies(array('sslsites.com'));
composer.json
"silex/silex": "1.0.*@dev",
"twig/twig": "~1.12",
"symfony/twig-bridge": "~2.2",
"symfony/validator": "~2.2",
"symfony/form": "~2.2",
"symfony/config": "~2.2",
"symfony/translation": "~2.2",
"symfony/locale": "~2.2",
"symfony/yaml": "~2.2",
"symfony/filesystem": "~2.2",
"symfony/finder": "~2.2",
"swiftmailer/swiftmailer": "~4.3",
"doctrine/dbal": "~2.3"
运行" url('类别')"在树枝模板中,我期待:
https://sslsites.com/sitename.com/category
但我明白了
https://sslsites.com/category
我不想要快速而肮脏的解决方案。谁能给我一个提示?
答案 0 :(得分:0)
当使用组件作为框架的一部分时,您可以使用router.request_context.base_url
参数,例如..
parameters:
router.request_context.base_url: my/path
这会让我相信你可以使用..
if ($baseUrl = $app['request']->server->get('HTTP_X_FORWARDED_HOST')) {
$app['request_context']->setBaseUrl($baseUrl);
}
我认为最好的地方就是当你创建应用程序但我可能错了,因为我只是粗略地看了一眼Silex。