Chris, here's my code for my index.php It allows you include multiple files as you need, so you can get pretty advanced. Feel free to ask me if you need help with it, if you decide to use it. [code] $url = $_SERVER['REQUEST_URI']; // Take off any initial slashes if(substr($url, 0, 1) == '/'){ $url = substr($url, 1, strlen($url)-1); } //Get the url minus any GET vars if(strrpos($url, "?")){ $url = substr($url, 0, strrpos($url, "?")); } // Take out the trailing slash if(substr($url, strlen($url)-1, strlen($url)) == '/'){ $url = substr($url, 0, strlen($url)-1); }else{ //header('Location: '.$siteURL.$url.'/'); } // Split the url into an array $url_parts = split('/', $url); // If any page $inc[0] = $basePath.'pages/'.$url_parts[0].'.php'; $incs = true; // if index Index if(!$url_parts[0] || $url_parts[0] == 'index'){ $inc[0] = 'base.php'; /// what you'd normally have on index. $incs = true; } //if processing page, for forms, etc. if($url_parts[1] == 'process'){ $inc[0] = 'process_'.$url_parts[0].'.php'; $incs = false; } //If the page is supposed to be wrapped in html if($incs){ require_once($incPath.'header.php'); if($inc){ foreach($inc AS $in){ require_once($in); } } require_once($incPath.'footer.php'); }else{ if($inc){ foreach($inc AS $in){ require_once($in); } } } [/code] and my htaccess RewriteEngine on RewriteRule ^([A-Za-z0-9_/]+)$ /index.php [NC]