??

The ?? suffix opens the versions of a deployment in the versions viewer: one entry for every deploy of the route, which you can compare, together with the screenshots taken at each deploy.

Syntax

plain
https://name.rt.ht/??
https://name.rt.ht/docs/??
https://name.rt.ht/docs::v

Append ?? to the URL of any page or file of the route. The last form, ::v, is Experimental and redirects to ??.

Parameters

??

The URL ends in ??. A query that itself ends in ?? also matches. RTEdge.net answers before it reads the deployment and before any access check, so the suffix works on routes that were never deployed and on routes that edge:user protects.

A worker call (/:api??) goes to the worker, and an index URL (/*??) goes to the index.

Route key

The versions of the route that serves the URL. The key is the bare name for name.rt.ht (new), the name plus the path for a path route (new/docs) and the full hostname for a custom domain (elefunc.com). A file URL maps to its route: /nav.js?? gives the route new.

::v Experimental

A path that ends in ::v, optionally followed by word characters (::versions, ::vers, ::view), answers with a 303 to the same path with ??. The original query is dropped. ::view opens the versions, not the source.

On a path route, write the slash: /docs/??. A URL such as /docs?? is redirected to /docs/?? first.

Response

RequestStatusTarget
??307Location: https://rtcode.io/code/versions/#r=<route key>, with the route key URL-encoded.
::v303Location: <path>??
URLRedirects to
https://new.rt.ht/??https://rtcode.io/code/versions/#r=new
https://new.rt.ht/docs/??https://rtcode.io/code/versions/#r=new%2Fdocs
https://elefunc.com/??https://rtcode.io/code/versions/#r=elefunc.com

The versions page needs sign-in. It lists the versions where you are the author (the saver) or the committer (the owner), and it hides the history before the latest deletion. See Versions and undo.

Access

Anyone can request the redirect. The versions page asks you to sign in, and shows only the versions that you saved or that belong to routes you own.

Examples

html
<a href=??>Versions</a>

A relative ?? resolves against the page's directory. On https://name.rt.ht/docs/ it opens the versions of the route name/docs.

Owner tools for a route

html
<nav>
  <a href=?>Source</a>
  <a href=??>Versions</a>
  <a href=::u>Usage</a>
  <a href=::t>Tail</a>
  <a href=::kv>KV</a>
  <a href=/*>My deployments</a>
</nav>

The first five links are relative, so they target the route of the current directory: on /docs/ they reach /docs/?, /docs/??, /docs/::u and so on. /* is absolute and lists the routes you own or edit under the host. Where a page needs sign-in, signed-out visitors are sent through it.

Specifications

Not part of any specification. ?? is an RTEdge.net feature. The redirects use these status codes:

Specification
HTTP Semantics (RFC 9110): 307 Temporary Redirect and 303 See Other

Availability

FeaturePlaygroundRTEdge.netNotes
??NoYesA feature of the RTEdge.net router. In the editor, the Code: Versions command (Alt+V) opens the same viewer for the first route.
::v ExperimentalNoYesA platform shortcut that redirects to ??.

See also