Сокращение 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.