Tengo la siguiente estructura de carpetas y archivos:
Código:
Tengo el siguiente .htaccess:public_html/.htaccess public_html/index.php public_html/zzz/index.php public_html/zzz/pagina.php public_html/subzzz/index.php public_html/subzzz/subpagina.php
Código:
Y hago las siguientes pruebas con los siguientes resultados (verde OK, rojo No OK):RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.dominio\.com$ [NC] RewriteRule ^(.*)$ "http\:\/\/dominio\.com\/$1" [R=301,L] RewriteCond %{REQUEST_URI} !^/zzz/ RewriteCond %{HTTP_HOST} !^www. RewriteCond %{HTTP_HOST} ^(.+).dominio.com RewriteRule .* /zzz%{REQUEST_URI}?s=%1 [QSA,L]
http://subdominio.domino.com/?a=b (funciona, me lleva a index.php dentro de zzz con dos variables $_GET)
http://subdominio.domino.com?a=b (funciona, me lleva a index.php dentro de zzz con dos variables $_GET)
http://subdominio.domino.com/ (funciona, me lleva a index.php dentro de zzz con 1 variable $_GET)
http://subdominio.domino.com (funciona, me lleva a index.php dentro de zzz con 1 variable $_GET)
http://subdominio.domino.com/pagina.php (funciona, me lleva a pagina.php dentro de zzz con 1 variable $_GET)
http://subdominio.domino.com/pagina.php?a=b (funciona, me lleva a pagina.php dentro de zzz con 2 variables $_GET)
http://subdominio.domino.com/subzzz (más o menos, me lleva a index.php dentro de zzz/subzzz con 1 variable pero sobreescribe la URL)
http://subdominio.domino.com/subzzz/ (funciona, me lleva a index.php dentro de zzz/subzzz con 1 variable)
http://subdominio.domino.com/subzzz?a=b (más o menos, me lleva a index.php dentro de zzz/subzzz con 2 variables pero sobreescribe la URL)
http://subdominio.domino.com/subzzz/?a=b (funciona, me lleva a index.php dentro de zzz/subzzz con 2 variables)
http://subdominio.domino.com/subzzz/subpagina.php (funciona, me lleva a subpagina.php dentro de zzz/subzzz con 1 variable)
http://subdominio.domino.com/subzzz/subpagina.php?a=b (funciona, me lleva a subpagina.php dentro de zzz/subzzz con 2 variables)
El problema está cuando intento acceder al subdirectorio de zzz y no entro con la barra ("/") final.
El resultado es el siguiente:
1. Entrando con URL http://subdominio.dominio.com/subzzz el navegador me muestra la URL http://subdominio.dominio.com/subzzz/?&s=subdominio y visualizando el array $_SERVER me encuentro con lo siguiente:
Código PHP:
[REDIRECT_QUERY_STRING] => s=subdominio&&s=subdominio
[REDIRECT_URL] => /subzzz/
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => s=subdominio&&s=subdominio
[REQUEST_URI] => /subzzz/?&s=subdominio
[SCRIPT_NAME] => /zzz/subzzz/index.php
[PHP_SELF] => /zzz/subzzz/index.php
Código PHP:
[REDIRECT_QUERY_STRING] => s=subdominio&s=subdominio&a=b
[REDIRECT_URL] => /subzzz/
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => s=subdominio&s=subdominio&a=b
[REQUEST_URI] => /subzzz/?s=subdominio&a=b
[SCRIPT_NAME] => /zzz/subzzz/index.php
[PHP_SELF] => /zzz/subzzz/index.php
Gracias!