hst.actionUrl虚拟配置Hippo CMS

时间:2015-04-11 17:08:46

标签: virtualhost hippocms

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

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

我的表单位于http://mysite.local/contact

我的虚拟主机http://mysite.localhttp://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和它的#34; localhost&#34;!

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

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

l.info(request.getServerName());

}

更新: 我根据Joeren的建议添加了节点。 enter image description here

然而它仍然无法正常工作。 我的活动删除了&#34; localhost&#34; orstally在hst下的节点:hosts&gt;&gt; dev-localhost但它破坏了网站。

我注意到了&#34; hst:hosts&#34;将hst:defaulthostname设置为&#34; localhost&#34;。 我还没敢做出改变,因为我认为这是不可逆转的。 enter image description here

更新:

我的虚拟主机配置(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;
      }
    }

2 个答案:

答案 0 :(得分:1)

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

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

HST:HST  + hst:主持人    + dev-localhost      +本地        +谜          + hst:root

有关更多背景信息,请参阅hosts configuration documentation。 如果您有像apache这样的Web服务器,请确保您启用了proxypreserve主机,以便HST可以检测到主机。有关详细信息,请参阅Apache webserver configuration documentation

答案 1 :(得分:0)

传递主机名解决问题!感谢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;
      }
    }