Expanding that a little . . . what you would do is
rewrite the request at a server level. For linux an example might be:
RewriteRule ^(blue-widget)$ /index.php?param=$1 [L]
... and index.php would take the $_GET parameter "param" and look up a corresponding database record,
select * from table where url='blue-widget'
Or, if it's not a database, rewrite directly to the script
RewriteRule ^blue-widget$ /blue-widget.php [L]
If your server is
IIS version 7, rewriting is built in, you need a module prior to that, such as IsapiRewrite.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="Static Rewrite Example" stopProcessing="true">
<match url="^(blue-widget)$" />
<action type="Rewrite" url="/index.php?param={R:0}" />
</rule>
/rules>
</rewrite>
</system.webServer>
</configuration>