IBM Commerce SEO URL issue with Ajax calls

757 views Asked by At

i am using WCS7 FEP7. i just enabled seo following below steps.

  1. httpd.conf changes

RewriteRule ^/(.*)$ /webapp/wcs/stores/servlet/$1 [PT,NC]

  1. wc-server.xml changes
<SEOConfiguration  defaultUrl=""  dynamicUrl="true" enable="true">
     <context-root-rewrite value="/"/>
 </SEOConfiguration>

I have run the keyword generation job..All SEO URLs are coming up nice.but OOB ajax calls are failing.

Add to cart ajax calling is failing.. I see http:///AjaxOrderChangeServiceItemAdd Ajax POST call is being triggered.. I am getting 404 error. Where as Commerce server needs http:///webapp/wcs/stores/servlet/AjaxOrderChangeServiceItemAdd

I tried to put a rewrite rule to add 'webapp/wcs/stores/servlet' for this particular request..As this is a POST call (parameters in the body), it would not work properly.

RewriteRule /AjaxOrderChangeServiceItemAdd$ /webapp/wcs/stores/servlet/AjaxOrderChangeServiceItemAdd?data=$1 [NC,L]‹

Am i missing something here.?

Please help.

3

There are 3 answers

2
Ashutosh Srivastav On BEST ANSWER

Try this..In the code snipped below, you need to pass your store and catalog ids respectively.

RewriteEngine on
RewriteRule ^/?$ /webapp/wcs/stores/servlet/TopCategoriesDisplay?storeId=<storeId>&catalogId=<catalogId> [L,QSA,PT]
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_URI} !^/sitemap.xml(.gz)?$
RewriteCond %{REQUEST_URI} !^/solr.*$
RewriteCond %{REQUEST_URI} !^/lobtools.*$
RewriteCond %{REQUEST_URI} !^(/)?$
RewriteCond %{REQUEST_URI} !^/webapp.*$
RewriteCond %{REQUEST_URI} !^/wcsstore.*$
RewriteCond %{REQUEST_URI} !^/ConsumerDirectStorefrontAssetStore.*$
RewriteCond %{REQUEST_URI} !^/wps.*$
RewriteCond %{REQUEST_URI} !^/images/.*$
RewriteCond %{REQUEST_URI} !^/favicon\.ico
RewriteRule ^/(.*) /webapp/wcs/stores/servlet/$1?storeId=<storeId>[QSA,PT]
1
Abed Yaseen On
1
Daniel Persson On

As it's mentioned in http://www-01.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.ibm.commerce.starterstores.doc/tasks/tsmshortenmadisonsurl.htm

`If you are specifying a blank context root, use the following format instead:

RewriteEngine on

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

The SEO engine should not care if it's an POST request. Data is sent regardless.

Be sure that you've created your AJAX call from wcf:url

http://www-01.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.ibm.commerce.component-services.doc/refs/rwvwcfurl.htm