How to change front page template based on url alias?
In Drupal 7, template suggestions are added/modified in the preprocess function, in this case HOOK_preprocess_page().

Add this to the template.php file in your theme root directory; you may need to create this file.

The problem is that the page--node--id suggestion is weaker than page--front and does not get used. We need to move the page--node--id suggestion to the end of the theme_hook_suggestions array, so it overrides page--front.

Add this snippet. I have added comments to explain what each line of code does. Replace ThemeName with your theme name.

/**
 * Override or insert variables into the page template.
 */
function ThemeName_preprocess_page(&amp;$variables) {

  // Check if this is the front page and a node is the front page.
  if ($variables['is_front'] == TRUE &amp;&amp; isset($variables['node'])) {

    // Foreach over the theme_hook_suggestions array.
    foreach ($variables['theme_hook_suggestions'] as $key =&gt; $value) {

      // Does the suggestion match the current node?
      if ($value == 'page__node__' . $variables['node']-&gt;nid) {

        // Match, unset the template suggestion.
        unset($variables['theme_hook_suggestions'][$key]);

        // Push the template suggestion onto the end of the array, this will give
        // it precedence over page--front.
        $variables['theme_hook_suggestions'][] = 'page__node__' . $variables['node']-&gt;nid;
      }
    }
  }
}


I think this is the easiest/quickest way to move an array item to the end, where it will override page--front.