问题
i am using WCS7 FEP7. i just enabled seo following below steps.
- httpd.conf changes
RewriteRule ^/(.*)$ /webapp/wcs/stores/servlet/$1 [PT,NC]
- 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.
回答1:
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]
回答2:
read this below and try it , it is a little different than what you did
http://www-01.ibm.com/support/knowledgecenter/SSZLC2_7.0.0/com.ibm.commerce.starterstores.doc/tasks/tsmshortenmadisonsurl.htm
回答3:
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
来源:https://stackoverflow.com/questions/27527946/ibm-commerce-seo-url-issue-with-ajax-calls