[ https://issues.apache.org/jira/browse/OFBIZ-5312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13820590#comment-13820590 ]
Jacques Le Roux commented on OFBIZ-5312: ---------------------------------------- Here is a summary of the curent state of the branch , and new requirements specifications: *Current state* (issues in bold) # Only the OFBiz moutpoint (eg ecommerce) is used to define the "primary url". So we have http://localhost:8080/ecommerce/ instead of previously http://localhost:8080/ecommerce/control/main. # The /category/ and /product/ part of the url (prefixes) are mandatories. This to discriminate in case of (unlikely but possible) same Ids for both a category and a product. # Only 1 level of category is supported, no complete paths to sub-categories. # The internal product name or category name _AND_ the product or category Ids are used to build the urls. # The generated urls end with the suffix ".html". # *You can get to a category or product with different urls*. All mixed combinations of upper or lower cases are possible, even for the /category/ and /product/ prefixes. *This is a NO-NO in a SEO perspective, because of possible duplicated contents*. # *When you get to a category, from the left category tree, the url does not change.* Note that it works from the breadcrumb. \\ \\ *New requirements/propositions "specifications"* (issues in bold). Each of these new requirements, must be handled in a separated sub-task (Jira issues). # Like we have /category/ and /product/, adding /catalog/ in the generated urls should be considered. # *The /category/ and /product/ prefixes should always be in lower case.* # *The categoryId and productId part of the generated urls must respect user enterered or generated case* (they are primary keys and only them, with /category/ and /product/ prefixes, guarantee urls unicity). # Though you can create a product with special characters (not ANSI), an url like <<http://localhost:8080/ecommerce/çà-test.html>> (rendered as shown) is not supported. *Special characters should be UTF-8 encoded and corresponding pages correctly rendered*. # About the ."html" suffix, we all agreed having it or not is a moot point. So we will provide a property for user choice, say "productWithHmlSuffix". And to mimic REST, where ressources are simply URLs without suffixes, we will use "productWithHmlSuffix=N" OOTB (ie use a property which default to no ".html" suffix). # Check [Pierre Smits's comment above|https://issues.apache.org/jira/browse/OFBIZ-5312?focusedCommentId=13797683] about *multi-tenant in ecommerce*. # Configuration of the content and search urls, Parimal respectively suggested Domain_Name/content/content_name and Domain_Name/search/keyword. # Documentation of SEO generated urls parameters. # We could introduce multi levels for categories, ie complete paths to sub-categories. For instance, from the breadcrumb, you get to http://localhost:8080/ecommerce/category/large-gizmos-102.html but not http://localhost:8080/ecommerce/category/gismos-100/large-gizmos-102.html. From an SEO POV there is no need for the second. But for OFBiz users (those handling content) it could be nice to have the choice. It must be a choice (using a property) because if you have 10 levels or more (you never know what people can come with ) with the 2nd possibilty only, OFBiz would render far too long URLs. Notably if the category names are long. This is optional, by default 1 level of category will be used. # To shorten URLs, OFBiz users could want to remove the "product category name" or/and the the "internal product name" from the generated urls. So we should allow to not add them. This should be documented options (properties) for both * categoryUrlWithOnlyNumber * productUrlWithOnlyNumber. \\ \\ *Technical notes* # About Special characters to UTF-8 encoded in generated urls, see SeoContextFilter.java comment: <<"// check to make sure the requested url is allowed>> # The new effort for content and search urls could be based on the work done for category and product. SeoContentUrlFilter.java must be checked to see if not (partially?) already done. # In a comment above, I noted that "The Perl5Matcher Perl5Compiler are not thread safe". This was handled by Jinghai using the Perl5Compiler.READ_ONLY_MASK field. It's a thread safe implementation and I also noticed Jinghai used local caches (userExceptionPatterns and seoPatterns Maps) for multiple compiled patterns (fixed unique asciiPattern and regexpIfMatch are not concerned). As noted in the oro Javadoc, there is a small pattern matching overhead when using Perl5Compiler.READ_ONLY_MASK. The OFBiz OOTB ComilerMatcher class can be used to workaround this if really necessary. I believe we don't need to worry about that OOTB, but it's worth to be noted here. # Check the use org.ofbiz.product.category.ftl.UrlRegexpTransform instead of org.ofbiz.webapp.ftl.OfbizUrlTransform for ofbizUrl macro. \\ \\ Please add a comment, if you see something is wrong, missing or complete, thanks! > Proposal: URL-Generation Changes > -------------------------------- > > Key: OFBIZ-5312 > URL: https://issues.apache.org/jira/browse/OFBIZ-5312 > Project: OFBiz > Issue Type: New Feature > Components: specialpurpose/ecommerce > Affects Versions: SVN trunk > Reporter: Jacques Le Roux > Assignee: Jacques Le Roux > Priority: Minor > Labels: changes, ecommerce, friendly, seo, url > Fix For: SVN trunk > > Attachments: OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - > ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 > - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, > OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - > ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 > - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, > OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - > ofbiz-ecommerce-seo.patch, OFBiz-5312-product-ecommerce-seo-20131031.patch, > OFBiz-5312-product-ecommerce-seo-for-seo-branch.patch, > OFBiz-5312-product-ecommerce-seo.patch, SeoContextFilter.java.patch > > > [This was proposed by Paul Piper in Nabble 7 months > ago|http://ofbiz.135035.n4.nabble.com/Proposal-URL-Generation-Changes-td4639289.html]. > Here is quoted Paul's proposal > {quote} > Hey Everyone, > over at ilscipio (www.ilscipio.com) we developed a set of functional OFBiz > changes that we believe the entire community could benefit from. The changes > have been implemented in parts in Syracus (www.syracus.net) for a while now, > but we figured that some of which are too crucial for ofbiz' success in the > long run, so we are considering the contribution (as we did with the SOLR > component). > As you are probably aware, OFBiz has a pretty uncommon way of generating > URLs. Most of this has to do with the fact that OFBiz uses a servlet > (ControlServlet) to handle all requests. The servlet is mounted at /control, > so that it won't interfere with other servlets. Though functionally valid, > this has the sideeffect that all urls are actually created on /control, which > is neither pretty, nor good by any measures of SEO. It also means that a few > 302 redirects are necessary to forward the user from / to /control/main. It > also makes requests more complicated, since many forwards are necessary > whenever somebody wants to move away from this implementation. > Since this is hurtful to many of the implementers, I wanted to discuss > whether or not you guys would be interested in the changes we have made. The > functional changes contain: > * Removal of /control out of all the urls > * SEO-friendly URLS > * Configurable product/category and other URLs > * Frontpage mapping from /main to / > It was tested on our end and contains all necessary improvements (Transforms, > Sample Configuration, Servlets & Filters) for it to be applicable. > If interested, I would create a new JIRA ticket for this and after a few > minor internal discussions, we will gladly provide the rest of you with it. > Regards, > Paul > {quote} > There is even a patch, mostly done by Jinghai Shi, that I attach here. Even > if it has been already used in [Syracus|http://syracus.net/] since early this > year, some help would be needed to test it thoroughly in OFBiz. > Then we should discuss if it's the way to go. I believe it is. Who needs a > /control/ or /main by default in ecommerce urls? Would you not prefer > http://localhost:8080/ecommerce/ over > http://localhost:8080/ecommerce/control/main ? -- This message was sent by Atlassian JIRA (v6.1#6144)