O primeiro passo é criar um arquivo .htaccess, que deve conter o seguinte código e ser salvo na mesma pasta que você pretende salvar o arquivo index.php
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?name=$1
# Handle requests for "index.php"
Agora crie o arquivo index.php e insira o seguinte
<?php echo $_GET['name']; ?>
Agora é hora de testar
Você precisará executar algo como MAMP ou ter este código em seu servidor. Digite a primeira parte do URL para apontar o navegador da web para a pasta que contém os dois arquivos criados. Em seguida digite uma palavra após a barra, por exemplo
http://localhost:8888/rewrite/myname
Nota: aqui, meus arquivos foram salvos em uma pasta chamada rewrite (e eu estava usando o MAMP).
É muito bom ter posições fixas no URL em relação aos termos de consulta, mas às vezes queremos a flexibilidade adicional de aceitar também strings de consulta regulares, por exemplo
http://localhost:8888/rewrite/myname?age=39
Se tentássemos processar isso no momento, a string de consulta seria ignorada. Para impedir que isso aconteça, precisamos adicionar [QSA], que anexa qualquer string de consulta do URL da solicitação original a qualquer string de consulta criada no destino de reescrita.
RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?name=$1 [QSA]
# Handle requests for "index.php"
Agora substitua o código index.php pelo seguinte:
<?php
if (isset($_GET['name'])) echo "Hello ".$_GET['name'].", ";
if (isset($_GET['age'])) echo "you look really young for ".$_GET['age'];
?>
Outra coisa útil de saber é que, se adicionarmos [NC] ao final da RewriteRule, ela não fará distinção entre maiúsculas e minúsculas:
RewriteEngine on
RewriteRule ^([a-z0-9]+|)/?$ index.php?name=$1 [QSA,NC]
# Handles requests for "index.php"
Para obter uma discussão mais aprofundada sobre sinalizadores de regra de reescrita (por exemplo, QSA, NC), consulte http://httpd.apache.org/docs/current/rewrite/flags.html
Discuto a reescrita mais detalhadamente aqui: http://sketchytech.blogspot.co.uk/2013/01/super-simple-htaccess-rewrite-to-create.html