For a fully general solution,
1. Put your files in a subdirectory like site_pages, so it will be harder for users to go directly to the page.
2. I assume they will all have .php extensions
3a. URL of "index.php?show=portfolio" (substitute 'page', 'request' , 'q' etc for 'show' )
PHP Code:
$directory = 'site_pages/' ;
$default_page = 'site_pages/default.php' ;
if( isset( $_GET[ 'show'] ){
$stub = $_GET[ 'show'];
if( preg_match( '/(\.|\/|\\)/' , $stub ) ){ ## make sure no . or / or \ to foil hackers
$requested_page = $default_page ;
} else {
$requested_page = $directory . $stub . ".php" ;
if( ! is_file( $requested_page ) ){ ## no file, serve up default
$requested_page = $default_page ;
}
} else {
$requested_page = $default_page ;
}
include( $requested_page ) ;
exit() ;