Tengo urls como esta:
https://mywonderfulsite.com/page
y mi .htaccess lo reescribe como
https://mywonderfulsite.com/index.php?source=page
El .htaccess es el siguiente:
RewriteEngine on RewriteBase / RewriteRule \.(php)$ - [L] RewriteRule ^index\.html$ - [L] RewriteRule ^favicon\.ico$ - [L] RewriteRule ^custom404\.html$ - [L] RewriteRule ^custom500\.html$ - [L] RewriteRule ^([^/]+)/?$ index.php?source=$1 [L]Esto falla si la URL contiene una subcarpeta como
https://mywonderfuldomain.com/subfolder/anotherpage
eso debería convertirse
https://mywonderfuldomain.com/index.php?source=/subfolder/anotherpage
Parece que no entiendo cómo manejar esta situación. ¿Como arreglarlo?
El problema es con el patrón ([^/]+) que coincide con todo menos con / .
Úsalo así:
RewriteEngine On RewriteRule \.php$ - [L,NC] RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .+ index.php?source=$0 [L,QSA]