одна страница контейнера, ссылающаяся на несколько URL-адресов

В opencms я хочу получить доступ к одной странице контейнера с несколькими URL-адресами

например: рассмотрим страницу контейнера xyz. Я хочу получить доступ к странице контейнера с несколькими URL-адресами, указанными ниже.

    1>localhost:8080/xyz/abc

    2>localhost:8080/xyz/abc?id=xxxabc.

Предложите мне, как этого добиться. я пытаюсь добиться этого с помощью http://tuckey.org/urlrewrite/

предложите мне и другие варианты


person Gora    schedule 21.01.2016    source источник
comment
Можете уточнить свой вопрос? Что показывает второй URL-адрес, если не страница контейнера? Если первый URL-адрес показывает это нормально, я не понимаю, почему добавление любого параметра URL-адреса не должно работать или почему вам нужно использовать перезапись URL-адреса.   -  person Mathias Conradt    schedule 21.01.2016
comment
оба URL-адреса будут отображать одну и ту же страницу контейнера, в этом ресурсе аспекта, т.е. страница контейнера присутствует по пути localhost:8080/xyz. Но URL-адреса будут такими, как показано выше. мне нужно вызвать ресурс внутри без изменения URL-адреса в браузере, как я могу этого добиться   -  person Gora    schedule 22.01.2016


Ответы (2)


Я использую фильтр http://tuckey.org/urlrewrite/ для удаления opencms/opencms в URL-адресе.

Регулярные выражения можно использовать для назначения нескольких URL-адресов одной странице контейнера. Фильтр Tuckey предоставляет urlrewrite.xml, укажите здесь тег правила

<rule>
        <from>/products/([0-9]+)</from>
        <to>/products/index.jsp?product_id=$1</to>
</rule>
person Gora    schedule 18.02.2016

Вышеупомянутая переписывание URL-адреса tuckey должно быть в порядке; вам нужно будет настроить его как FORWARD.

Если вы хотите сделать это напрямую в своем шаблоне JSP OpenCms, вы можете сделать переадресацию непосредственно в JSP следующим образом:

<% if(request.getParameter("id")==null) request.getRequestDispatcher("/xyz/abc?id=xxxabc").forward(request, response);%>

Но такой код в JSP обычно не является лучшей практикой. Использование tuckey urlrewrite, вероятно, является более чистым подходом.

person Mathias Conradt    schedule 22.01.2016
comment
здесь мой URL-адрес в браузере будет выглядеть как localhost: 8080/xyz/abc, но ресурс находится на локальном хосте: 8080/xyz, поэтому возникает проблема. мы не можем использовать переадресацию в JSP - person Gora; 22.01.2016
comment
Я не понимаю, почему вы не можете использовать форвард там? Не обслуживается ли localhost:8080/xyz/abc через шаблон jsp? Это Java-кодированный сервлет? Что это за ресурс? - person Mathias Conradt; 22.01.2016
comment
Ресурс — это страница контейнера opencms, она находится по адресу localhost:8080/xyz. - person Gora; 22.01.2016
comment
В этом случае вы можете создать новый файл jsp в OpenCms по адресу localhost:8080/xyz/abc и указать выше переадресацию в этот файл jsp, указав на localhost:8080/xyz. (Обратите внимание, что URL-адреса, которые вы упомянули здесь, отличаются от вашего исходного сообщения; в исходном сообщении у вас есть только ?id-параметр в качестве разницы, а здесь у вас есть /xyz/abc, который должен вести к /xyz.). Этот случай на самом деле проще. Я не понимаю, почему вы не можете просто создать новый ресурс в /xyz/abc с форвардом в нем. - person Mathias Conradt; 22.01.2016