A rewrite engine is a part of a software application capable of converting a uniform resource locator (URL) from one format to another. Specifically, this type of engine is used to change how a URL appears so that users on a website see a URL that the site administrators want the user to see, rather than the actual URL. This can be done as a security measure, used to restrict the amount of information potential hackers can see about a website. A rewrite engine is also often used to make URLs more presentable and more navigable for website users.
There are a number of different formats and web frameworks that incorporate a rewrite engine in them to allow for URL rewriting. This type of rewriting is typically done through programming in the source code for an Internet website, often using hypertext markup language (HTML) or another method of coding. When done properly, the rewrite engine allows the website administrator or designer to indicate how one or more URLs should be displayed to users of the website. This allows a website to display links and website navigation on the website in a way that can be more secure and attractive for users.
An example of how a rewrite engine can work is a website in which the designer wants to organize it using URLs that indicate the date a page was made, such as entries on a blog. The actual URL for a page could consist of the address for the website, followed by text that indicated the type of language used for the site and the location of a page based on information that was difficult to understand at casual glance. Using a rewrite engine, the website administrator could alter the way in which the URL is displayed for someone viewing a website so that the language information was not shown, and the URL was more clearly structured around the date the post was made.
By hiding the language information used on the website, information that could be used to launch an attack on that site can be less readily available. The use of the rewrite engine to alter how the URL appears would also make it easier for users navigating the website to move between pages based on the date for which they are looking. Users could also more easily predict possible URLs used on a site, based on dates or categories they see used in other URLs on the site, thus navigation becomes even easier. This can result in less frustration for users, and an increased ability for users to anticipate how they may be able to find useful URLs.