ok, development purposes, have dedicated web server. it's not connected directly internet, i've setup apache reverse proxy on server, forwards development server.
this way, can web access server.
the problem is, routes in laravel being prefixed internal server ip address, or servers computer name.
for example, go http://subdomain.test.com routes, generated using route()
helper, displaying following url: http://10.47.32.22
, not http://subdomain.test.com
.
the reverse proxy setup such:
<virtualhost *:80> servername igateway.somedomain.com proxyrequests off <proxy *> order deny,allow allow </proxy> proxypass / http://10.47.32.22:80/ proxypassreverse / http://10.47.32.22:80/ <location /> order allow,deny allow </location> </virtualhost>
i have set actual domain name in config\app.php
.
question
how can set default url use in routing? don't want using internal addresses, because defeats point of reverse proxy.
i've tried enclosing routes in route::group(['domain' ...
group, doesn't work either.
i ran same (or similar problem), when laravel 5 application not aware of being behind ssl load-balancer.
i have following design:
- client talks ssl load balancer on https
- ssl load balancer talks back-end server on http
that, however, causes urls in html code generated http:// schema.
the following quick'n'dirty workaround make work, including schema (http vs. https):
place following code on top of app/http/routes.php
$proxy_url = getenv('proxy_url'); $proxy_schema = getenv('proxy_schema'); if (!empty($proxy_url)) { url::forcerooturl($proxy_url); } if (!empty($proxy_schema)) { url::forceschema($proxy_schema); }
then add following line .env file:
proxy_url = http://igateway.somedomain.com
if need change schema in generated html code http:// https://, add following line well:
proxy_schema = https