Como faço para parar o mod_rewrite de anexar links ao url?
Espero que a resposta seja algo tão simples que eu queira chorar, mas não consigo entender. Eu sou novo no mod_rewrite.
Eu queria mudar meus links de coisas como domain.com/?p=about para domain.com/about*/* (com a barra final) e funciona bem, mas sempre que eu passo para um link, ele acrescenta o novo link à parte de trás do URL. Por exemplo, eu tenho um sobre e um link de contato. Se eu clicar sobre ele, navegue para domain.com/about/ e, se eu clicar em contato, ele navegará para domain.com/about/contact/ e continuará adicionando os links ao final do URL. Se eu estiver no domínio.com e clicar em um link (sobre, neste caso), ele irá para domain.com/about/ e se eu clicar mais ou menos 4 vezes, minha barra de endereços dirá "domain.com/ sobre / about / about / about / about / "Eu reproduzi isso em um exemplo muito simples abaixo, o que estou fazendo errado?
.htaccess
RewriteEngine On
RewriteRule ([a-zA-Z0-9]+)/$ index.php?p=$1
index.php
<a href="about/">about</a> | <a href="contact/">contact</a><br><br>
<?php
if(!isset($_GET['p'])) {
echo "home";
} else {
echo $_GET['p'];
}
?>
Obrigado pela ajuda!
edit: Funciona bem se eu usar um caminho absoluto, mas prefiro não se não for absolutamente necessário.
edit2: adicionando
RewriteBase /
quebra os links. Eles parecem estar indo para domain.com/about/ e ... / contact /, mas eu recebo um 404 - estou supondo que a regra que usei é de alguma forma incompatível com a forma como estou fazendo minhas ligações, e é por isso que Eu também incluí o index.php.