【问题标题】:hst.actionUrl virtual configuration Hippo CMShst.actionUrl 虚拟配置 Hippo CMS
【发布时间】:2015-04-11 17:08:45
【问题描述】:

按照here的指示,我的网站可以正常显示内容了。 但是,处理表单提交是当前的一个问题。

我在我的环境中设置了虚拟主机。内容的呈现很好,但表单提交最终会出现在空白页面中。

我的表格是http://mysite.local/contact

我的虚拟主机是http://mysite.local 匹配到http://localhost:8080/site

我的表单遵循开发者线索:

<@hst.actionURL var="actionUrl"/>
<form id="" class="form" action="${actionUrl}" method="post">

当我点击提交时,我被重定向到一个空白页面:http://localhost:8080/contact?r14_r1_r1:u_u_i_d=5641b2fe-10ad-41b2-8f30-06d8a59ff451

使用我的自定义组件,我打印出了 serverName,它是“localhost”!

如何在控制台中配置它,以便我的服务器是“mysite.local”而不是“localhost”?

@Override
public void doBeforeRender(final HstRequest request,
final HstResponse response)
throws HstComponentException {
super.doBeforeRender(request, response);

l.info(request.getServerName());

}

更新: 我已经按照 Joeren 的建议添加了节点。

但它仍然无法正常工作。 我删除了最初位于 hst:hosts >> dev-localhost 下的“localhost”节点,但它破坏了站点。

我注意到“hst:hosts”的 hst:defaulthostname 设置为“localhost”。 我不敢做出改变,因为我想这将是不可逆转的。

更新:

我的虚拟主机配置(nginx)如下:

server {
      # listen 80;
      server_name mysite.local;

      location /site/ {
        proxy_pass   http://localhost:8080/site/;
        # include /etc/nginx/proxy_params;
      }

      location /cms/ {
        proxy_pass   http://localhost:8080/cms/;
        # include /etc/nginx/proxy_params;
      }

      location / {
        proxy_pass   http://localhost:8080/site/;
        # include /etc/nginx/proxy_params;
      }
    }

【问题讨论】:

  • 你能在这里添加你的虚拟主机配置吗?您是否传递原始主机名?
  • 嗨@Jeroen,我已经在那里发布了我的nginx配置,你怎么看?

标签: virtualhost hippocms


【解决方案1】:

要重定向到完全限定域名,您需要在 CMS JCR 控制台的 HST 配置树中设置虚拟主机。

如果 mysite.local 是您本地机器上的域,您可以将它放在 dev-localhost 主机组中。通过创建以下节点:

hst:hst + hst:主机 + 开发本地主机 + 本地 + 我的网站 + hst:root

有关更多背景信息,请参阅hosts configuration documentation。 如果您在前面有一个像 apache 这样的 Web 服务器,请确保您将 proxypreserve 主机保持打开状态,以便 HST 可以检测到该主机。请参阅Apache webserver configuration documentation 了解更多信息。

【讨论】:

    【解决方案2】:

    传递主机名解决问题!感谢 Jeroen 的评论。
    不过,无需在控制台中更新 hst:hosts 配置。

    我已将我的 nginx 配置更新为:

    server {
          # listen 80;
          server_name mysite.local;
    
          location /site/ {
            proxy_pass   http://localhost:8080/site/;
            proxy_set_header Host            $host;
            proxy_set_header X-Forwarded-For $remote_addr;
          }
    
          location /cms/ {
            proxy_pass   http://localhost:8080/cms/;
            proxy_set_header Host            $host;
            proxy_set_header X-Forwarded-For $remote_addr;
          }
    
          location / {
            proxy_pass   http://localhost:8080/site/;
            proxy_set_header Host            $host;
            proxy_set_header X-Forwarded-For $remote_addr;
          }
        }
    

    【讨论】:

      猜你喜欢
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      相关资源
      最近更新 更多