2013-07-20 62 views
0

所以我遇到了一个问题,我无法找到任何资源。我试图用apache和varnish运行laravel。它工作正常,但有一个例外,所有的网址都添加了Apache运行的端口(8080)。所以,当我去的链接:使用apache和清漆laravel

http://localhost/ 

它工作正常,但所有的网站上的链接都出现了类似:

http://localhost:8080/about-us 

我有清漆端口80和Apache运行上运行端口8080.我很确定,这是清漆导致的问题,因为当我运行它只是在端口80上的Apache,它的工作原理没有添加在端口。有谁知道如何绕过它添加端口。我无法通过谷歌找到关于此问题的任何信息。

+0

你能发布你的vcl后端定义吗?我很确定,在这种情况下,Varnish不是应该指责的人,而是lavarel的默认网址重写 – NITEMAN

回答

0

我不是PHP天才,但我知道的所有Web框架都使用入站请求中的主机头来生成非相对链接(侧面问题:为什么当资源在相同的位置时呈现绝对URL?主机在第一位?)。

所以,如果在你的VCL你改写请求的或后端要求的(bereq)主机头为localhost:8080一拉

set req.http.Host = "localhost:8080"; 

set bereq.http.Host = "localhost:8080"; 

或做同样的事情在Apache中,这就是导致问题的原因。如果不是这样,PHP使用服务器运行的端口而不是主机头来构造URL,这几乎是普遍不希望的行为,并且可能是由于您的配置错误造成的。