Search

Guys, how do you usually implement deep linking? I've made 100% ajax site. Now trying to make it more SEO-friendly. But... For example, i can't catch the url param via symphony. http://mysite.com/#area-link -- i can't ?debug such a link, neither catch the #area-link amongst the Params pool members :-(

Also i can't get the idea how to dynamically load DS'es. E.g. i have a singple page in backend and what it to serve all the possible requests and produce correspondent text content, gathered from various DS's for the sake of SEO.

The Fragment identifier (the part after the #) is only evaluated by the client / browser. The server doesn't see it, so you can't ?debug it.

And you can't dynamically load Ds's. You have to manually th DS's to you pages. To create / support deep links you have to define URL parameters for the pages and use those parameters to filter the connected DS's. Having only one Symphony page is probably not a good idea because this quickly leads to slow performance. You'd have to find a way to only trigger the DS's you want to trigger.

Edit
If you really really want to use fragment identifiers to filter your content you have to parse everything after the hash and use Ajax to get the contents.

GET parameters like, ?name=something are referenced by $url-name. Symphony appends url-. Hope that helps.

I would also consider using history.js or the history property of HTML5. so you could remove the #area-link and use http://mysite.com/area-link/ then on clicks replace that using ajax and history.js. So both search engines and users would have a good experience

Gunglien, how can one get rid of #-fragments? It's impossible afaik. Setting /area-link instead of /#/area-link leads to page reload. It's kinda "standard", ancient browsers behaviour. Am i wrong? :-) E.g. you could trying to click on the left menu items on my site: http://pro-act.ru (though it's in russian).

Why don't you use standard URL along with the history API instead of hashes? This way you could make your site work with or without JavaScript (which is pretty easy if you are using the same XSL templates for the JavaScript free version as you do for the AJAX version). This is how we do it on our studio's site.

Timteka I'm talking about the history api for browsers HTML5. If you want a single url structure forget support for old browsers - if you are happy with having 2 versions it is always possible. Have a look at this history.js repo should make your life simpler

Nils, i don't really care of users without JS :-) As for the history.js, i thought it's only suitable for HTML5. Though it's capable of downgrading to html4 browsers :-) BTW, guys, what about good old swf-address reincarnation? i mean http://www.asual.com/jquery/address/ :-)

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details