首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache/清漆拖尾斜线与端口问题

问Apache/清漆拖尾斜线与端口问题
EN

Stack Overflow用户
提问于 2014-07-30 01:29:46
回答 1查看 1.7K关注 0票数 4

我有一个安装程序(php应用程序)

*清漆(端口80) -> apache端口(8080)

默认情况下,apache向目录添加尾随斜杠,但当它这样做时,将使用端口重定向。例如:

http://www.domain.com/文件夹重定向至http://www.domain.com:8080/文件夹/

这个带有端口的url会引起问题。

因此,我尝试在DirectorySlash文件中添加.htaccess指令,但是应用程序不再友好了。例如断裂的环节等

然后,我尝试按照http://danielmiessler.com/blog/adding-a-trailing-slash-to-directories-using-varnish/上的描述更新VCL。

代码语言:javascript
复制
sub vcl_recv {
if ((req.url ~ "/directory" ) && (! (req.url ~ "index.php"))){
   set req.url = req.url "/";
}
}

但我明白错误

代码语言:javascript
复制
Message from VCC-compiler:
Expected ';' got '"/"'
(program line 174), at
('input' Line 14 Pos 26)
   set req.url = req.url "/";
-------------------------###-

有人有什么建议吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 03:02:07

我建议将重定向逻辑排除在Varnish之外;基本问题是,基于DirectorySlash设置的重定向将在重定向中添加内部Apache端口(8080)。

要修复,请尝试将以下Apache设置添加到Apache配置中(在htaccess中不起作用):

代码语言:javascript
复制
UseCanonicalName Off

UseCanonicalName上的Apache文档

使用关闭的UseCanonicalName,Apache httpd将使用客户端提供的主机名和端口(如果有)形成自引用URLs。

这意味着,即使在执行DirectorySlash重定向时,apache也应该尊重Varnish转发的传入客户端端口(80)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25027448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档