Es un poco complicado, ya que al reescribir la URL, mod_rewrite vuelve a enviar una petición interna de la URL, por lo que es difícil distinguir entre el que se haya enviado una petición:
http://www.pagina.com/articulos/articulo.php
O el que mod_rewrite haya enviado una petición interna a esa URL.
Una de las únicas diferencias es la variable THE_REQUEST, por lo que se puede usarla para realizar esa distinción:
Código:
RewriteEngine on
RewriteRule ^articulo/(.+)$ articulo.php?id=$1
RewriteCond %{THE_REQUEST} /articulo\.php
RewriteCond %{QUERY_STRING} id=([^&]+)
RewriteRule ^articulo.php$ /articulos/articulo/%1? [R=301]