How can I rewrite URLs in the Zeus web server for Mobile useragent?

不问归期 提交于 2019-12-07 17:32:08

问题


I need to redirect anyone with a mobile user agent to a file called mobile.php. My web hosting provider, Net Registry uses the Zeus web server.

Here's the script I've written from my research

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:

I used the instructions on my host's site.

I pasted that into their console and it has worked to do redirects. Net registry have some odd console thing that you submit and it takes 10 minutes to update the zeus server config (annoying as hell).

Anyway my issue is that it redirects me to the wrong location: So if you visit the site, with a user agent string that contains ipad|ipod|android|\s+mobile then you will trigger it ()

It takes me here:

http://example.com.au/mobile.php,%20catalog/index.php

I can't work out how to fix that, or why that happens because at the moment this file exists:

http://example.com.au/mobile.php

as does this one:

http://example.com.au/index.php. Contents of this file are:

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

Any ideas on how I can make this work more like an apache .htaccess url Rewrite?

the official Zeus documentation


回答1:


Fixed it by changing

   set OUT:Location = /mobile.php

to

   set URL = /mobile.php

From the manual... Using Request Rewrite Scripts To use the request rewriting functionality, create a script in the Zeus Request Rewrite Scripting Language. The script contains instructions telling the Virtual Server how to change the URL or headers of requests that match specified criteria. The Virtual Server compiles the script, and (if the rewrite functionality is enabled) uses it every time it receives a request. It runs the commands in the script, changing the URL if it matches the specified criteria. Once the script is finished, the Virtual Server continues processing the resulting URL.Zeus Web Server 4.3 User Guide 142 Configuring URL Handling When changing the URL, the rewrite functionality can only change the local part of it, that is, the part of the URL after the host name. For example, if a user requests http://www.myhost.com/sales/uk.html, the rewrite functionality can only make changes to /sales/uk.html. This means that you cannot use the rewrite functionality to change the request to refer to a file on another Virtual Server. For example, the following script illustrates how to change requests for any HTML files in the /sales directory so that the user receives them from the /newsales directory instead: match URL into $ with ^/sales/(.).html if matched set URL=/newsales/$1.html The rewrite functionality can also change the HTTP headers that were received with a request, and create new HTTP headers to be returned to the user. For example, the following script changes the HTTP host header, so that a request for www.mysite.com/subserver is redirected to the Subserver www.subserver.mysite.com: match URL into $ with ^/([^/]+)/(.)$ if matched then set IN:Host = www.$1.mysite.com set URL = /$2 endif



来源:https://stackoverflow.com/questions/9091721/how-can-i-rewrite-urls-in-the-zeus-web-server-for-mobile-useragent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!