Configuración de htaccess pretty urls

Estoy usando htaccess por primera vez para hacer URLs bonitas para los archivos html de mi sitio web y 1 archivo php. Me preguntaba si podría obtener algún consejo sobre la configuración de mi archivo htaccess y si la forma en que lo configuro es una buena manera. Odiaría que mis URL no funcionen en alguna situación debido a lo que he escrito. 🙁

Ejemplo de archivo html:

before: http://www.domain.com/subdomain/htmlpage.html after: http://www.domain.com/subdomain/htmlpage/ 

Solo archivo php:

 before: http://www.domain.com/subdomain/phppage.php?p=1 after: http://www.domain.com/subdomain/phppage/1/ 

He agregado una regla para redirigir index.html a index.php. También he tenido que agregar ‘base href’ en el encabezado de cada archivo porque he usado enlaces relativos.

el archivo htaccess:

 Options +FollowSymLinks RewriteEngine on RewriteRule ^index\.html?$ / [NC,R,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301] RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.+)/$ $1.html [L] RewriteRule ^(.+)/([0-9]+)/?$ phppage.php?p=$1 [L] 

Esta línea

 RewriteRule ^(.+)/([0-9]+)/?$ phppage.php?p=$1 [L] 

va a enviar algunas páginas a phppage.php a pesar de que no se parecen

 http://www.domain.com/subdomain/phppage/1/ 

porque no hay mención de phppage en el primer argumento para RewriteRule.

intente agregar lo siguiente a su archivo .htaccess en la raíz de su dominio

 Options +FollowSymLinks RewriteEngine On RewriteBase / # redirect http://www.domain.com/subdomain/htmlpage.html to http://www.domain.com/subdomain/htmlpage/ RewriteCond %{REQUEST_URI} ^(/subdomain/[^/]+)\.html$ [NC] RewriteRule . %1/ [L,R=301] #redirect http://www.domain.com/subdomain/phppage.php?p=1 to http://www.domain.com/subdomain/phppage/1/ RewriteCond %{REQUEST_URI} ^(/subdomain/[^/]+)\.php$ [NC] # or alternatively if page is literally phppage uncomment below and comment above #RewriteCond %{REQUEST_URI} ^(/subdomain/phppage)\.php$ [NC] RewriteRule . %1/ [L,R=301] #if url does not end with / RewriteCond %{REQUEST_URI} ^(/subdomain/.+[^/])$ [NC] # and its not for an existing file RewriteCond %{REQUEST_FILENAME} !-f # put one trailing slash RewriteRule . %1/ [L,R=301] #write http://www.domain.com/subdomain/htmlpage/ to htmlpage.html RewriteCond %{REQUEST_URI} ^/subdomain/([^/]+)/$ [NC] RewriteRule . %1.html [L] #write http://www.domain.com/subdomain/phppage/1/ to phppage.php?p=1 RewriteCond %{REQUEST_URI} ^/subdomain/[^/]+/([0-9]+)/$ [NC] RewriteRule . phppage.php?p=%1 [L]