Сокращение URL с помощью RewriteRule: полностью удалить корень контента?

Я пытаюсь сократить URL-адрес, как это:

www.mystore.com/webapp/wcs/stores/servlet/CategoryDisplay?langId=-1& storeId=10001&catalogId=10001&categoryId=10006

...к этому:

www.mystore.com/CategoryDisplay?langId=-1&storeId=10001&catalogId=10001& categoryId=10006

Используя примеры от IBM, я легко могу избавиться от большей части URL, просто выполнив это в конфигурации Apache:

RewriteRule ^shop/(.*) /webapp/wcs/stores/servlet/$1

А затем добавьте это в файл wc-server.xml:

<context-root-rewrite value=“/shop” />

Можно ли полностью избавиться от префикса /shop/? Кажется, что ничто в Apache (также известный как IIS) не может этому помешать, но не затопит ли это Websphere Commerce?

2 ответа

Решение

Ответ: потому что в этом случае мы просто перенаправляем запросы на сервлет. Если есть какой-либо другой контент, будет путаница. Мы в основном перемещаем дочернюю ветвь в ответвление корня, но есть и другие дочерние ветви.

Просто положи

httpd.conf:

 RewriteRule ^/(?!wcsstore)(.*) /webapp/wcs/stores/servlet/$1 [PT,L]

туалет-server.xml:

  <SEOConfiguration defaultUrl=""
                    dynamicUrl="true"
                    enable="true">
      <context-root-rewrite value="/" />
  </SEOConfiguration>

Перезагрузите сервер server1 и http.

Другие вопросы по тегам