特殊字符(特别是?)无法在自定义重定向网址字段

时间:2017-01-24 07:13:48

标签: drupal drupal-7 drupal-webform

我正在尝试重定向到网址中带有问号的网页,以便我可以跟踪Google Analytics中的提交内容。理想情况下,表单提交会重定向到http://example.com/application-completed?abc123(abc123是从表单中的隐藏字段中获取的替换标记,如果您愿意,则为ID)。

我遇到的问题是问号会导致URL在此时切断,因此上面的示例只是重定向到http://example.com/application-completed。如果我更换?使用/,重定向工作,所以我知道替换令牌是正确的。我需要使用的原因是什么?是我创建了一个使用自定义模板的“应用程序已完成”页面,因此转到application-completed / abc123会给我一个404.

我猜这与valid_url有关?任何帮助将非常感激。我是一个前端开发人员,几乎没有将Drupal改为标准后端的知识,所以如果问题看起来很基本,请原谅我。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您想要跟踪用户是否提交了表单。在drupal 7中,您可以编辑 webform-confirmation.tpl.php 并编辑一些 GA-script

在webform-confirmation.tpl.php中添加此脚本。

<script type="text/javascript">// <![CDATA[
ga('send', 'pageview', '/#any-track-id-you-want-to-use');
// ]]></script>

现在您必须编辑 html.tpl.php (包含GA脚本的地方)并在脚本中添加这些内容:

ga('send', 'pageview', location.pathname + location.search + location.hash);

我希望这会对你有所帮助。

答案 1 :(得分:0)

如果您要在URL中启用特殊字符,请尝试安装Transliteration模块。项目页面是这样说的

  

它采用Unicode文本,并尝试通过将其他书写系统中的文本表达的发音音译为罗马字母,以US-ASCII字符(通用可显示,非重音字符)表示它。

根据经验,任何非字母数字字符都应进行URL编码。这当然适用于要解释为的字符(即:不打算具有特殊含义)。在这种情况下,即使角色实际上不需要进行URL编码,对URL进行编码也没有坏处。

如果您不想对这些特殊字符进行URL编码,请转到模块 - >重叠并卸载覆盖模块