使用RewriteRule缩短URL:完全删除内容root?

时间:2013-03-12 08:18:41

标签: mod-rewrite websphere-commerce

我试图缩短这样的网址:

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的示例我可以通过在Apache配置中执行此操作轻松删除大部分URL:

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

然后将其添加到wc-server.xml文件中:

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

是否可以完全摆脱/ shop /前缀?似乎Apache(又名IIS)中的任何内容都无法阻止这种情况,但是Websphere Commerce会阻止它吗?

2 个答案:

答案 0 :(得分:1)

刚刚放

<强>的httpd.conf:

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

<强> WC-server.xml中:

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

重新启动server1和http服务器。

答案 1 :(得分:0)

答案:因为在这种情况下我们只是重新路由servlet的请求。如果有任何其他内容会有混淆。我们基本上将子分支移动为根的子分支,但是还有其他子分支。