how to have a another page.tpl.php file in drupal with different regions and blocks? Well, here is the problem. In my site I want to create a plain template and add my own regions and my own blocks. So when the user visits for example www.example.com/register-now the blocks will be different from the main page. I dont like disabling the blocks because when you open Firebug the blocks can be still be seen.

So I have read in this article that you have to create a new .tpl.php file.  So in my case I created the page__register-now.tpl.php file. and put that under drupal/sites/all/themes/ninesixty/ directory. 

Then I opened the template.php file and tried the below code:

function ninesixty_preprocess_page(&amp;$vars, $hook) {
  $path=drupal_get_path_alias();

  if($path == 'register-now'){
    $variables['theme_hook_suggestion'] = 'node__register';
  }
}
If your path to the register page is www.example.com/register-now then you only need to name the page template file appropriately and Drupal should do the rest, you shouldn't need to add anything to template.php.

From what you've written, the name of the page template file is wrong. It needs to be renamed to: page--register-now.tpl.php (notice the underscores turned to dashes).

After you rename the file (usually after adding any additional template files), make sure to clear all caches from admin/config/development/performance.

EDIT: If your page is a node, you can't use the Alias path in the template file, it actually has to be the internal path to the node, e.g. page--node--123.tpl.php where 123 is your node's ID.


  The rest are based on the internal path of the current page. Do not confuse the internal path to path aliases which are not accounted for.


See here