I've got a simple mod_rewrite system set on my website which essentially converts

http://site.com/file -> http://site.com/file.php

Here's the .htaccess file

Options -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.site.com
RewriteRule ^(.*)$ http://site.com/$1 [R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/?$ http://site.com/$1.php [L]

It was employed by a very long time after which a few days ago I recognized that although the RewriteRule was working, it had been really altering my URL within the status bar.

For example, it might redirect /photos to /photos.php, however it would also alter the Hyperlink to show the .php. It has never happened before and I am unsure what went down to trigger the modification.

Any ideas?

The very first rewrite rule needs the [L] flag. In the mod_rewrite documentation for that [R] flag:

You'll more often than not desire to use [R] along with [L] (that's, use [R,L]) because by itself, the [R] flag prepends http://thishost[:thisport] towards the URI, however passes this onto the following rule within the ruleset, which could frequently lead to 'Invalid URI in request' alerts.

Within this situation, you do not get an alert, but appending the ".php" extension happens before giving the redirect instead of once the second, rerouted request is available in.

Also, take away the plan and domain title in the substitution within the second rewrite rule. A complete URL may cause an implicit redirect. In the documentation for RewriteRule:

The Substitution of the rewrite rule may be the string that replaces the initial URL-path that was matched up by Pattern. The Substitution may be considered a:

Absolute URL
If the absolute URL is specified, mod_rewrite inspections to determine if the hostname matches the present host. Whether it does, the plan and hostname are removed out and also the resulting path is treated as a URL-path. Otherwise, an exterior redirect is carried out for the given URL. To pressure an exterior redirect to the current host, begin to see the [R] flag below.