【发布时间】:2014-02-15 08:50:06
【问题描述】:
我有一个包含以下域的 magento 网站。
http://www.site.eu/
http://www.site.it/
http://www.site.es/
http://www.site.fr/
http://www.site.de/
http://www.site.co.uk/
http://www.site.com/
我正在尝试提交电子报订阅的电子邮件地址。 (Magento 有这个)。
以下是简报订阅表格的代码
<form action="<?php echo $this->getFormActionUrl() ?>" method="post" id="newsletter-validate-detail">
<div class="form-subscribe">
<div class="input-box">
<input type="text" name="email" id="newsletter" title="<?php echo $this->__('Sign up for our newsletter') ?>" class="input-text required-entry validate-email" />
</div>
<button type="submit" title="<?php echo $this->__('Go') ?>" class="button"><span> <span><?php echo $this->__('Go') ?></span></span></button>
</div>
</form>
echo $this->getFormActionUrl() 生成带有 https 的操作 url。
示例:
以下站点的 URL 名为 https://www.site.eu/newsletter/subscriber/new/ 因为配置我将基本安全 url 设置为 https://www.site.eu/
http://www.site.it/
http://www.site.es/
http://www.site.fr/
http://www.site.de/
其他网站将使用自己的域重定向到 https。这些将正常工作
http://www.site.com/ 重定向到https://www.site.com/
http://www.site.co.uk/ 重定向到https://www.site.co.uk/
如果用户单击上述任何站点中的提交按钮,则该站点将导航到https://www.site.eu/newsletter/subscriber/new/,但没有任何发布数据。所以根据情况我无法访问 POST 变量(电子邮件)
我相信我已经正确地解释了这个问题。请指教为什么会这样?您想到了什么解决方案?
【问题讨论】:
-
如果您将 site.eu 域作为 DNS 中的转发,那么它可能会在重定向时剥离该数据。如果您希望所有表单提交都转到 site.eu,您是否尝试过在表单操作中对其进行硬编码?打开该模板并将
action="<?php echo $this->getFormActionUrl() ?>"更改为action="https://www.site.eu/newsletter/subscriber/new/"。这样它就不会在重定向之前先访问其他域。 -
谢谢,但它不起作用。提交表单后,即使它的硬编码变量在订阅者新操作中被清除。
-
你是用IE来测试的吗?你用的是什么浏览器?