Bienvenido al foro.
Lo de "link amigable" es una expresión muy cutre,
link se suele utilizar en el contexto de html, en su lugar lo correcto es decir URL o URI.
Bueno, empezar diciendo que el
leading slash es muy engorroso ya que depende de la versión de Apache que estés usando. Si utilizas Apache2 esas dos reglas son directamente ignoradas. Utilizando de nuevo el metacaracter
? lograrás que sea optativo y que as urls de entrada puedan ser capturadas. El resto parece estar bien, pero ten en cuenta que estableces dos reglas seguidas para el mismo patrón por lo tanto debes decidirte entre cargar ?p=$1 o index.php?p=$1, pero no ambos (o utilizar otra expresión).
Código:
RewriteRule ^/?(\w+)/?$ ?p=$1
RewriteRule ^/?(\w+)/?$ index.php?p=$1
Saludos