我已经创建了一个网站,https://www.example.com.现在,我还创建了一个移动子域,在那里我最初创建的四个页面被合并到一个长滚动中.当我手动转到m.example.com时,它工作得很好,但我之前也打印了一些带有二维码的卡片,这些卡片引用了主要域名.因为二维码更有可能是从移动设备扫描的,所以我想在主页中添加一些代码,将任何"移动设备"自动重定向到m.example.com,但当我try 在JS中实现这一点时,我的重定向最终将我发送到example.com/m.example.com.我如何重定向到实际的子域?

到目前为止,我的代码非常简单:

//Redirect to mobile subdomain if on mobile device
if (screen.width <= 699) {
    window.location = "m.example.com";
}

我还try 了document.location,并try 了基于文档树的引用-try 指向./mobile/index.php,其中根文件夹是主主页的index.php所在的位置,所以我认为我应该从那里重定向.注意,我的JS在./inc.目录中,但无论我是否包含./(甚至././),计算机都说不:( 我也试过查看.htaccess,它似乎很适合推荐,但我也没有看到任何关于如何在那里进行条件推荐的内容.我使用的是PHP和JS,当然还有HTML和CSS,所以使用这些语言的任何解决方案都是首选,但我会 Select 任何可行的解决方案.

推荐答案

您需要包括https://协议:

window.location = 'https://m.example.com/';

Explanation:

当您声明URL时,您可以声明:

  1. Absolute URLs,以协议(https://http://等)开头
  2. Relative-to-root URLs,以/开头,表示您的域的根文件夹
  3. Relative URLs,它从浏览器当前指向的文件夹开始

要重新定位到子域,您实际上没有任何 Select ,但1.

Javascript相关问答推荐

使用redux-toolet DelivercThunks刷新访问令牌

如何解决这个未能在响应上执行json:body stream已读问题?

对象和数字减法会抵消浏览器js中的数字

我在这个黑暗模式按钮上做错了什么?

传递一个大对象以在Express布局中呈现

函数返回与输入对象具有相同键的对象

构造HTML表单以使用表单数据创建对象数组

数字时钟在JavaScript中不动态更新

变量的值在Reaction组件中的Try-Catch语句之外丢失

使用Java脚本导入gltf场景并创建边界框

是什么导致了这种奇怪的水平间距错误(?)当通过JavaScript将列表项元素追加到无序列表时,是否在按钮之间?

面对代码中的错误作为前端与后端的集成

AJAX POST在控制器中返回空(ASP.NET MVC)

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

将Singleton实例设置为未定义后的Angular 变量引用持久性行为

如何将字符串拆分成单词并跟踪每个单词的索引(在原始字符串中)?

设置复选框根据选中状态输入选中值

将延迟加载的模块转换为Eager 加载的模块

如何使用fltter_js将对象作为参数传递给javascrip?

Node.js的Fetch()调用总是创建新的Express会话