Vale, soy consciente que estoy respondiendo de nuevo a mi hilo, no obstante lo hago en calidad de actualizar con novedades a la causa y explicar así los nuevos resultados y no con animo de bumpear el tema. Gracias.
Primero de nada gracias Drvy nuevamente por ayudarme con lo que me comentaste dado que debido a eso me distes una idea la cual ha dado resultados favorables, pero no han solucionado del todo el problema base, solo lo ha esclarecido un poco más.
Después de escribir lo que le comentaba a Drvy aquí en respuesta a su ayuda, seguí investigando con los patrones, intentando sacar la ruta, errores y cualquier cosa que me pudiese ayudar.
Esto puede ser algo largo, pero para quienes puedan ayudar o puedan ser ayudados en el futuro con un problema de esta índole, creerme, merece la pena seguir leyendo.
Resulta que hable en la respuesta anterior de las rutas, si efectivamente, había algo raro en las rutas. Lo primero que hice fue cambiar el nombre de la carpeta "Zero Proyect" por "zero" para evitar problemas por el espacio o las mayúsculas, entonces me encontré con que la ruta mostraba un "
http://localhost:8080/zero/zero" y aparecía el index.php del WampServer.
La conclusión a esto fue mayúscula cuando lo vi, resulta que hasta ahora la ruta que había estado tomando el .htaccess era la que WampServer le suministraba de forma absoluta y no la del url.
¿Cual era esa ruta absoluta? obviamente la que empieza por mi unidad de disco duro donde tengo alojado el proyecto y termina en /www/ hasta el "index.php" del wampserver, por lo tanto por eso aparecía el index.php y por eso /zero/ era intercambiado por el .htaccess en la url dando por existente el index.php que yo buscaba a través del .htaccess.
Cambie la ruta añadiendo como absoluta la del proyecto en el wampserver, ahora si o si era el index.php de mi proyecto, entonces ¿Que debía salir mal? el patrón de expresión regular.
Hasta aquí he llegado, estoy aun haciendo pruebas, pero por lo que llevo visto ningún patrón de los que circula por la red explicando que limpia la extensión .php han servido para realizar su función.
Por lo demás lo probado hasta ahora con expresiones regulares me han llevado a las siguientes errores y sus consecuentes conclusiones:
1º Las expresiones usadas por la red y que he probado han sido ignoradas por completo, no han tenido efecto o han dado como resultado un Internal Server Error. Para asegurarme he probado primero el codec usado por el archivo .htaccess y si, esta en UTF-8, he probado en otros pero no ha sucedido nada o simplemente ha dado Internal Server Error.
2º Las expresiones que he hecho mediante la ayuda de un libro que tengo de javascript, la información suministrada por microsoft y diversas webs, que explican para que sirven y como se construyen las expresiones regulares, me han llevado a hacer todo tipo de experimentos, para sacar errores simplemente o intentar conseguir parte de la ruta y que un error me mostrara que estaba sacando.
3º La expresión
RewriteRule ^(.*).php$ $1.php da como resultado que $1 guarde "index" o cualquier otra parte de la pagina acabada en .php, si quito el .php al (.*).php da Internal Server Error, por lo tanto ya se que tanto el patrón como la ruta han de ir con la extensión sino da error.
4º La expresión
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L] no da un error exactamente, sino que es ignorada, curiosamente me he fijado en que las barras "/" dentro de un patrón provocan que este sea ignorado y siga viéndose la pagina tal cual, pero que dependiendo de como se escriban las barras de un Internal Server Error, por ejemplo
RewriteRule ^((+/)*[^.]+)$ /$1.php [L].
5º Algunas expresiones probadas y que daban error en la ruta mostrándola, podia verse que realmente estas no eran ignoradas, a continuación los errores de ruta y sus patrones usados:
Muestra: The requested URL /i.php was not found on this server.<IfModule mod_rewrite.c>
# Activar RewriteEngine
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^(^[a-z])*(.*).php$ $1.php
</IfModule>
Muestra: The requested URL /x.php was not found on this server.<IfModule mod_rewrite.c>
# Activar RewriteEngine
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z])*(.*).php$ $1.php
</IfModule>
La conclusión más rápida que puedo sacar de tanta prueba es que $1 en caso de usar (.*).php si toma index.php, pero que intentando que sea solo /index/ no funciona, dado que por lo que parece o creo que es, ambos ruta falsa y ruta verdadera no me las esta diferenciando, sino que requiere que estas sean verdaderas si o si.
Para terminar recomendar el uso del "apache error log", esto me permitió ver algunos fallos y llegar a la conclusión de la ruta absoluta más rápidamente.
Gracias por vuestro tiempo con la lectura, saludos.