1. Kayako Download customers: we will continue to develop and support Kayako Download beyond July 2017, alongside the new Kayako for existing customers.

    Find out more.

  2. The forum you are viewing relates to Kayako Classic. If you signed up or upgraded to the new Kayako (after the 4th July 2016), the information in this thread may not apply to you. You can visit the forums for the new Kayako here.

SEO Friendly URLs

Discussion in 'Using Kayako Classic' started by stromimport, Oct 19, 2010.

  1. stromimport

    stromimport New Member


    V4 should be able to handle SEO friendly URL, correct? As far as I understand I need to modify my .htaccess file. Can anybody give me sample .htaccess files for V4? Thank you in advance.

  2. Jamie Edwards

    Jamie Edwards Staff Member

  3. stromimport

    stromimport New Member


    Great! Any ETA when you will provide rewriting info?

    Thank you,

  4. stromimport

    stromimport New Member


    any updates or ETA? This is how I stop using my Kayako license before. Rewrite strings promised but it seems to take 3+ years.... I installed my trial to see if it works already and now I want to know when it will work.

  5. mctek

    mctek Member

    Any word on this Jamie? Loving v4 BTW...
  6. nibb

    nibb Reputed Member

  7. Jamie Edwards

    Jamie Edwards Staff Member

    We're still working and testing different methods. This should work for Apache:

    <IfModule mod_rewrite.c>
    RewriteEngine on 
    RewriteCond $1 !^(admin|api|console|favicon\.ico|robots\.txt|sitemap\.xml|index\.php|tiny_mce_gzip\.php|cron|rss|setup|staff|visitor|winapp) [NC]
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !\.(gif|jpe?g|png|bmp|css|js)$
    RewriteRule ^(.*)$ /index.php/$1 [L] 
  8. dotboost

    dotboost Established Member

    Is not working that htaccess , tested in /admin and /staff
    I am getting 'page not found'
  9. Jamie Edwards

    Jamie Edwards Staff Member

    It is not meant to go in those folders, but in your helpdesk's route. Does it work there?
  10. Carl Silver

    Carl Silver Reputed Member

    *root ;) lol

    Throws up HTTP500 for me

    Running Apache/2.2.17

    EDIT #2:

    Got it working client side, but even with .htaccess in root folder it breaks admin/staff CP login page (HTTP404)
  11. ron.defreitas

    ron.defreitas Member

    This is accurate... The Client side interface can be changed (between the htaccess/httpd.conf changes and the base path config value.

    However, even with the condition preventing the rewrite from occuring on the staff/admin side, it doesn't matter because your support center does not use a separate variable for the backend and frontend interfaces, thus breaking all backend features when using full SEO rewriting on the client-side.

    There is one thing I'd recommend though. If you are trying to get your site properly crawled via Google and others, make your base path index.php instead of index.php? like the default config... google will not look at query strings other than actual name value pairs, but without the querystring it will treat index.php as a dir.
  12. nibb

    nibb Reputed Member

    Can you clarify on this?

    Our helpdesk has all urls with index.php?

    It would be nice to get rid of the index all together, but if at least the ? can be gone to correctly crawling its a good.

    Im actually a bit impressed Kayako said v4 would be fully SEO compatible and its even worst then v3. Google has crawled mostly errors and non existen files from v4 and is dropping v3 fast as I changed the encoding and its shows incorrectly. I would not like but need as urgent solution for v4 to be crawled as fast as possible. It seems Google is crawling directories it should not as well, like the cache folder and the files in there.
  13. Jamie Edwards

    Jamie Edwards Staff Member


    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ ./index.php?/$1 [PT,L,QSA]
  14. nibb

    nibb Reputed Member

    Can you be more specific Jamie?

    Because non of rules work and this could be because they probably only work with a specific configuration in the configuration file in:

    define('SWIFT_BASENAME', 'index.php');
    define('SWIFT_BASENAME', 'index.php?');
    define('SWIFT_BASENAME', '?');

    Any of this 3 will work in the swift basename.

    Of course leaving it blank breaks the helpdesk.

    I really find it impressive that a simple apache rule cannot get rid of the index. But then again it depends on what you have on the swift path.

    I use Apache which is extremely popular and it seems my.kayako.com works just fine but I have not seing a single Kayako client having get rid of the index.php (I searched the signature of forums users)

    This is high priority for me. Because I know Kayako will not fix the gazillion bugs in the software before next year, so im forced to at least have the helpdesk, v4 like it is now, as it is, live for customers. Regarless of features no there, or some things not working, at least have it live. I mean I just want people to use it and I cant because I will not spend my full christmas and new year rewriting the website to get rid of the index.php in the urls once rules comes out.

    I need to link in hundreds, and probably thousands pages to the helpdesk. I also use a special index that will not work with string ? urls. Ok I got that fixed, by removing the ?, and just leaving index.php but I find it extremely annoying and raging that I need to link everywhere like this.

    And even if the rules come out eventually I cannot wait until the world moves forward, I need to do my job and work now, not next year. And this is something very basic, its like im asking Kayako to notify my cell phone with SMS like v3 had, which this hasnt either, or that it should auto close tickets, we can manually close tickets for now, we can live without sms, without Desktop having sounds, etc, but what we cannot do by no way is to spend hours and days now on the integration with modules, websites, etc, and then have to rewrite every single url there is.

    This is one of the first and most basic things people will look when installing v4. Can I use all the urls with "index.php" on it? Yes of course, but I will not work twice. Specially because if this is a new install I want to do things from start right. There is no reason to start linking and integrating a website, modules, billing, loginshare, everything there is and then just to find out Kayako released a rules to get rid of it. Its like slamming someone in the face that all the work you did, you can do it again now, because now they work without index.php.

    The other solution is just start to integrate links and data without using "index.php" and having thousands of death links, and wait until Kayako fixes this.
  15. Jamie Edwards

    Jamie Edwards Staff Member


    What do you want me to be more specific about regarding my example above? That would be the contents you put in a .htaccess file in the root of your support directory.

    Any rule we release will work either with index.php? in the URL or without - so you don't need to worry about breaking your links.
  16. nibb

    nibb Reputed Member

    Jamie, what I wanted to know was if I had to leave the "index.php?" in the config swift path or erased to use it with the rules.

    I found out you have to erase them but even so your rules did not worked. I edited them after copying one of Wordpress, which rewrites urls very well, using my kayako install path instead of just / and it seems to work, well that without mentioned it breaks admin/staff side. But at least something is something.

    Of course this cannot be used as you cannot access staff/admin side.

    My bet is that we all should leave the "index.php" in the urls and then hide them with some rules like they do here:

    Now, if Kayako doesnt know how to do this, why dont you pay someone to write you some rules and thats the end of the story?

    All the rule has to do is remove the "index.php" or add "index.php" what ever method people prefer, because Kayako swift path lets you use it or dont use anything at all, which in that case the full helpdesk doesnt work. So I would say its better to leave "index.php" on the path and then just hide it.

    Now im testing and testing and have some results on the helpdesk but cannot get the admin/staff side to work.

    Im a little impressed that nobody (me included) knows how to write this rules. I always thought Kayako clients where nerds or computer savy.
  17. Jamie Edwards

    Jamie Edwards Staff Member

    We didn't say we don't know how to write them - we do know, as you have seen on our own desk and any hosted Kayako customer. We're porting them to different webservers and testing them before releasing the rules into the wild.
  18. nibb

    nibb Reputed Member

    So what webserver is then using Kayako that is such a mystery to release them? I dont mind if they break all my helpdesk, its better then not using them at all, and how bad can rules be? If they just dont work perfectly I dont mind. You can always erase them and go back to how the helpdesk is currently.

    So based on what you say the Kayako hosted customers cannot use their staff/admin side and neither can Kayako?

    I really dont understand why you cant release them to the world if we are testing every else already, how bad could a simple rule do.

    The rules you posted work. They do, for the end side on the end client. I know rules are complex and they require allot of work to match every kayako string, but you can perfect them with time, just like v4 is doing with released patches almost each day. With time they are going to get better and better and customers will be able to report how they working in their case.

    At least I did not saw any helpdesk with SEO urls yet, besides the Kayako helpdesk. If you use Apache for my.kayako.com it should not be so hard to copy them and post them here. Im sure the 2 posted here are not the ones Kayako is using unless they modded their own helpdesk to make it work like hard coding all urls. :(
  19. Jamie Edwards

    Jamie Edwards Staff Member


    No, because we have rules working for nginx. When we move onto Apache (which we are, as we speak), we'll continue to posts tests in this thread.

    All of Kayako's URLs are search engine optimized. Google and the like have no problem dealing with index.php?.
  20. Jamie Edwards

    Jamie Edwards Staff Member

    If you are using Apache, try:

    RewriteEngine On 
    RewriteCond $1 !\.(jpg|jpeg|png|gif|js|css|htm|html)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
    This will rewrite and pass all requests to Kayako that aren't actual files, directories or files ending in jpg|jpeg|png|gif|js|css|htm|html.

    Let me know how you get on with that.

Share This Page