URL conventions

When you creating extension then please respect following coding convention to work in best practice and without fails.

 

Parameters

With regular parameters we mean HTTP GET (like /url/to/my/page?foo=bar) and HTTP POST parameters.

 

Please always use getArgv() to get your parameters, if required use the arguments of this global framework function.

 

IMPORTANT: Only control content output with KRYN-GET parameters!

 

This is not only a good practice for public search engine, but also good for our internal search engine, because the internal searchengine, the engine which searches for duplicate contents and the 404-engine are based on the content hash and the URL with Kryn-GET parameters, so we need to make sure, that you only use Kryn-GET parameters to control the content output and only use regular GET or POST parameters to handle user input without changing the content output.

 

Kryn-GET

We implemented a seo optimized URL scheme. Your extension should us this scheme to be a good SEO extension.

 

http://<domain>/<realPageUrlWithSlashes/<param1>/<param2>/<p1Name>:<p1Value>/

 

Some examples

 

Real page URL http://domain.com/news/detail
URL with parameters http://domain.com/news/detail/my-test-news-/2
   
Real page URL http://domain.com/catalog
URL with parameters http://domain.com/catalog/tanks
http://domain.com/catalog/cars
   
Real page URL http://domain.com/news/
URL with parameters http://domain.com/news/filter:tagone
http://domain.com/news/filter:tagtwo

Real page URL: is the real url to the page without parameters.

 

You can access this additional parameters with getArgv('e'.n);

Info: 'e' stand for extra.

 

Nameless parameters

based on the examples above

 

http://domain.com/news/detail/my-test-news/2

 

getArgv('e1') == returns ==> my-test-news

getArgv('e2') == returns ==> 2

 

http://domain.com/catalog/tanks

 

getArgv('e1') == returns ==> tanks

 

 

Name based parameters

 

It is also possible to define name based parameters within the URL.

 

http://domain.com/news/detail/newstitle:my-test-news/newsid:2

getArgv('newstitle') == returns ==> my-test-news

getArgv('newsid') == returns ==> 2

 

Complete order based parameters
also with real page url

 

You can access each item between the slash via the position, because each URL will be exploded by slash.

 

http://domain.com/news/detail

getArgv(1) == returns ==> news

getArgv(2) == returns ==> detail

 

 

Important notes

When users request a page with (invalid) KGET-parameters and no extensions handle this invalid parameters and therefore no content will be changed relative to the same page without these invalid KGET-parameters, then the system redirects the client to a URL (a shorter has more priority) of the same page with the same content-hash. Same with maybe valid parameters: When a plugin generates several links to the same page with different parameters, but two or more of these links generates the same content, then the search engine redirects the client as well as with completely invalid parameters. If you want to disable this behavior, then just activate the checkbox at tab "Search" => "Exclude this page from search index"

 

 

The system respects only KGET-parametes and no regular GET/POST-parameters for this behavior. The same with the internal search engine: It respect the KGET-parameters as index but not the regular GET/Post-parameters. So, please remember: Only use KGET-Parameters to change the content output, otherwise the content won't be indexed by the internal search engine and the system can't check for duplicate content.