The actual cms is in the directory example.com/news/. The current format is example.com/news/category/article/ or example.com/news/category/sub-category/article/ depending if the article is in a sub-cat or not.
It appears having an actual file name such as article.php for the articles rather than a directory is going to cause a lot of work. At this point in time I am keeping it as is.
As for the 301 redirect from non-www to www I would still like to implement this. To answer your question, I think, index.php is the template for the cms. So, anything related to the template is pushed to that file and that file only. So I should be able to perform the redirect on it - correct?