将 URL 路径重定向到索引上的操作?

将 URL 路径重定向到索引上的操作?

我在 Ubuntu 20.04 上运行 apache 网络服务器。

我有一个domain.com将客户引导至 的index.html网站。网站上有一个按钮,单击该按钮时会打开日历弹出窗口小部件。我希望访问 的人能够domain.com/schedule进入索引页,就像他们单击了该按钮一样。

我怎样才能简单地做到这一点?

答案1

您肯定需要在客户端触发弹出窗口。以下是一个简单的示例,您可以轻松尝试并调整(并保护)以满足您的需求:

<html>
  <head>
      <script type="text/javascript">
        function isScheduleRequested() {
        if(window.location.href.includes('/schedule')) {
          document.getElementById('button').click();
        }
      }
      </script>
  </head>
  <body onload='isScheduleRequested();'>
      <button type="button" name="button" id="button" onclick="alert('Opening calendar');">Open calendar</button>
  </body>
</html>

一般来说,它的作用是检查当前页面的 URL 是否包含“/schedule' 子字符串”(任何地方,不一定在末尾,甚至不只包含一次),如果包含,则调用按钮的click事件。

onload='isScheduleRequested();位只是为了确保在主体加载后(并且按钮元素存在)执行 javascript 脚本。

您甚至可以在计算机上尝试此操作。将此代码保存为“index.html”并使用浏览器打开它。除非您单击按钮,否则不会发生任何事情。但是,如果您将其附加?q=/schedule到 URI,则会触发按钮的“单击”事件。(在此示例中,我们需要将字符串/schedule作为 GET 参数的一部分传递,因为没有域名、服务器或任何花哨的设置。)

答案2

在 Apache 服务器上你可以创建重写规则用于从另一个路径渲染相同的 index.html,但显示弹出窗口小部件是您必须在应用程序端解决的问题(例如,JavaScript 可以使用Web API URL.路径名检测访问 URL domain.com/schedule)。当您的应用程序检测到用户访问domain.com/schedule(基于路径名)时,它可以调用弹出窗口小部件打开操作。

相关内容