Как я могу переписать URL-адреса на веб-сервере Zeus для мобильного пользователя? - PullRequest
3 голосов
/ 01 февраля 2012

Мне нужно перенаправить любого, у кого есть мобильный пользовательский агент, в файл с именем 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:

Я использовал инструкции на сайте моего хоста .

Я вставил это в их консоль, и это сработало для перенаправления. В системном реестре есть некоторая консольная вещь, которую вы отправляете, и требуется 10 минут, чтобы обновить конфигурацию сервера Zeus (досадно).

В любом случае, моя проблема в том, что он перенаправляет меня в неправильное место: Поэтому, если вы заходите на сайт со строкой пользовательского агента, которая содержит 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?

официальная документация Zeus

1 Ответ

0 голосов
/ 02 февраля 2012

Исправлено путем изменения

   set OUT:Location = /mobile.php

до

   set URL = /mobile.php

Из руководства ... Использование сценариев перезаписи запросов Чтобы использовать функцию перезаписи запроса, создайте скрипт в Zeus Request. Переписать язык сценариев. Скрипт содержит инструкции, рассказывающие Виртуальный сервер, как изменить URL или заголовки запросов, которые соответствуют указанным критериям. Виртуальный сервер компилирует скрипт и (если функциональность перезаписи включен) использует его каждый раз, когда получает запрос. Он запускает команды в скрипт, изменяющий URL, если он соответствует заданным критериям. Когда сценарий по завершении виртуальный сервер продолжает обработку полученного URL-адреса. Руководство пользователя Zeus Web Server 4.3 142 Настройка обработки URL При изменении URL, функция перезаписи может изменить только локальную часть этого, то есть часть URL после имени хоста. Например, если пользовательские запросы http://www.myhost.com/sales/uk.html, переписать функциональность может вносить изменения только в /sales/uk.html. Это означает, что вы не можете использовать функцию перезаписи, чтобы изменить запрос на ссылку на файл на другом виртуальном сервере. Например, следующий скрипт иллюстрирует, как изменить запросы для любого HTML-файлы в каталоге / sales, чтобы пользователь получал их от Каталог / newsales вместо: сопоставить URL в $ с ^ / sales /(.). html если соответствует, установите URL = / newsales / $ 1.html Функция перезаписи также может изменять полученные заголовки HTTP с запросом, и создайте новые заголовки HTTP, которые будут возвращены пользователю. За Например, следующий скрипт изменяет заголовок узла HTTP, чтобы запрос для www.mysite.com/subserver перенаправляется на субсервер www.subserver.mysite.com: сопоставить URL в $ с ^ / ([^ /] +) / (. ) $ если соответствует установить IN: Host = www. $ 1.mysite.com установить URL = / $ 2 ENDIF

...