Usually you define your routes and then just assign different slug and id to them to make different “pages”. Example, you have a hotel booking site and the hotel details page looks like:
@Antony When I was handcoding, I built a CMS that would allow creation of pages so it was necessary for me to dynamically update the .htaccess file. I found this in some very old code of mine. May be useful to you if you modify it for your needs for use in Wappler.
#################################
### CHECK FOR .HTACCESS FILE
#################################
$htaccess = './.htaccess';
if (!file_exists($htaccess)) {//if file doesn't exist or install path changed
$fh = fopen($htaccess, 'w') or die("can't open htaccess file");
$stringData = "<IfModule mod_rewrite.c>\r\n
Options +FollowSymlinks\r\n
RewriteEngine On\r\n
RewriteBase ".$_SESSION['path']."\r\n
RewriteCond %{REQUEST_FILENAME} !-f\r\n
RewriteCond %{REQUEST_FILENAME} !-d\r\n
##home login mypage etc\r\n
##RewriteRule ^([^/\.]+)/?$ index.php?pg_ident=$1 [QSA,L]\r\n
##home.html login.html mypage.html etc\r\n
##pg_ident cannot be page_ident otherwise submit_value() if always the _GET value\r\n
RewriteRule ^([^/\.]+)".$_SESSION['file_extension']."$ index.php?pg_ident=$1 [QSA,L]\r\n
</IfModule>\r\n";
fwrite($fh, $stringData);
fclose($fh);
}//if (!file_exists('.htaccess')) {
#################################
### END CHECK FOR .HTACCESS FILE
#################################