Changing news detail template and soft 404 errors

Do something cool with CMS? Show us ...
This board is for 'Answers', and the discussion of answers... Not for questions.
Locked
User avatar
blast2007
Power Poster
Power Poster
Posts: 508
Joined: Wed Aug 01, 2007 5:36 pm

Changing news detail template and soft 404 errors

Post by blast2007 »

Hi all,
I have some pages calling news module with instruction like:

Code: Select all

{news category="General" summarytemplate="Responsive_News_Summary" detailtemplate="Responsive_News_Detail"}
As result of this, URLs of news detail page are something like:

Code: Select all

http://www.mysite.com/news/333/222/mynewstitle/d,Responsive_News_Detail.htm
I want to get rid of last URL part and have nice URLs like:

Code: Select all

http://www.mysite.com/news/333/222/mynewstitle.htm
To accomplish this, I have to remove "detailtemplate=..." instruction and create default template but what about SEO and soft 404 errors? Pages are already indexed but they are duplicated according to search engine because of same content.
One option is to edit .htaccess and create a 301 redirect but not all webmasters can access to it.

So here my CMSMS solution:
  1. Clone actual news detail template with a new name and make it default template.
  2. Create a new UDT named "moved301" with this code

    Code: Select all

    $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $path = parse_url($url, PHP_URL_PATH);
    $pathComponents = explode("/", trim($path, "/"));
    $newurl = 'http://'.$_SERVER['HTTP_HOST']. '/'. $pathComponents[0] .'/'.$pathComponents[1] .'/'.$pathComponents[2] .'/'.$pathComponents[3] .'.htm';
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: $newurl");
  3. Edit old template and remove all content (but don't delete template) replacing with {moved301}
  4. Done!
Search engine trying to access detail template using old URL will be redirected with a 301 status code to new (short) URL.

Hope it helps
Regards
blast
Locked

Return to “Tips and Tricks”