gpt4 book ai didi

url-rewriting - 如何在 Zeus Web 服务器中为移动用户代理重写 URL?

转载 作者:行者123 更新时间:2023-11-30 23:57:58 26 4
gpt4 key购买 nike

我需要将任何拥有移动用户代理的人重定向到一个名为 mobile.php 的文件。
我的网络托管服务提供商 Net Registry 使用 Zeus 网络服务器。

这是我从研究中编写的脚本

RULE_1_START:
# get the document root
map path into SCRATCH:DOCROOT from /
match IN:User-Agent into $ with iPad|iPod|iPhone|Android|s+Mobile

if matched then
set OUT:Location = /mobile.php
endif
RULE_1_END:

我用了 instructions on my host's site .

我将它粘贴到他们的控制台中,它已经可以进行重定向。 Net 注册表有一些奇怪的控制台内容需要您提交,更新 zeus 服务器配置需要 10 分钟(真烦人)。

无论如何,我的问题是它将我重定向到错误的位置:
因此,如果您访问该站点,使用包含 ipad|ipod|android|\s+mobile 的用户代理字符串然后你会触发它()

它带我到这里:
http://example.com.au/mobile.php,%20catalog/index.php

我不知道如何解决这个问题,或者为什么会发生这种情况,因为目前这个文件存在:
http://example.com.au/mobile.php

就像这个:
http://example.com.au/index.php. Contents of this file are:

<?php header("Location: catalog/index.php");

关于如何使这项工作更像 apache .htaccess url Rewrite 的任何想法?

the official Zeus documentation

最佳答案

通过更改修复它

   set OUT:Location = /mobile.php


   set URL = /mobile.php

从手册...
使用请求重写脚本
要使用请求重写功能,请在 Zeus 请求中创建一个脚本
重写脚本语言。该脚本包含的说明告诉
虚拟服务器如何更改与指定条件匹配的请求的 URL 或 header 。
虚拟服务器编译脚本,并且(如果重写功能是
启用)每次收到请求时都会使用它。它运行命令
脚本,如果 URL 匹配指定的条件,则更改 URL。一旦脚本
完成后,虚拟服务器将继续处理生成的 URL。Zeus Web Server 4.3 用户指南
第142话
更改 URL 时,重写功能只能更改本地
它的一部分,即主机名后面的 URL 部分。例如,如果一个
用户请求 http://www.myhost.com/sales/uk.html ,重写
功能只能对/sales/uk.html 进行更改。这意味着
您不能使用重写功能将请求更改为引用
另一个虚拟服务器上的文件。
例如,以下脚本说明了如何更改任何请求
/sales 目录中的 HTML 文件,以便用户从
/newsales 目录:
将 URL 与 ^/sales/(.).html 匹配到 $
如果匹配设置 URL=/newsales/$1.html
重写功能还可以更改收到的 HTTP header
使用请求,并创建要返回给用户的新 HTTP header 。为了
例如,以下脚本更改 HTTP 主机 header ,以便请求
对于 www.mysite.com/subserver 被重定向到子服务器
www.subserver.mysite.com:
将 URL 与 ^/([^/]+)/(.)$ 匹配到 $
如果匹配则
设置 IN:Host = www.$1.mysite.com
设置 URL =/$2
万一

关于url-rewriting - 如何在 Zeus Web 服务器中为移动用户代理重写 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9091721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com