So, what you want is a function foo() and its inverse foo'() that does this:
foo( "some long string" ) --> 1234
foo'( 1234 ) --> "some long string"
In other words, you want to keep the entire information content of the original string.
There are only two ways to do this:
- keep the original string, i.e. store it in a database of some sort, or
- lossless compression of the original string into a short number. While theoretically possible, the compression ratio you're asking for isn't going to be possible.
Which leaves the first option, as plenty of people here have described.
You've said you already have a database with a column that stores a 4-digit number.
If that database table doesn't already have a column that stores the HTML page's absolute path, then add one.
You'll also want a UNIQUE constraint on the column with the number (and/or the other column, depending on your database design).
The rest is "just" SQL...