Utilizar htaccess rewrite para hacer que un subdirectorio sea su propia raíz para las solicitudes de ruta relativa de raíz

¿Puedo usar htaccess para capturar solicitudes de un determinado subdirectorio y hacer que ese directorio se use como el directorio raíz para cualquier solicitud de ruta relativa de raíz? Por ejemplo si tengo …

http://www.example.com/subFIXED/subANY/restfpath 

… donde subFIXED es siempre el mismo directorio, subANY es cualquier subdirectorio inmediato de subFIXED, y quiero una redirección de todas las solicitudes href / src de cualquier archivo bajo subdias para usar subANY como ‘raíz’ (algo así como un subdominio) , en efecto, las solicitudes de nivel raíz utilizan esto como el nivel de directorio raíz:

 http://www.example.com/subFIXED/subANY/ 

En lugar de esto:

 http://www.example.com/ 

Supongo que puedo poner un archivo htaccess en subFIXED para manejar todas las llamadas provenientes de cualquier elemento de cualquier versión, pero no estoy muy familiarizado con la reescritura htaccess, variables, etc., no puedo entender cómo capturar qué directorio es hacer la solicitud de nivel de raíz y luego usar esa captura para hacer una reescritura para considerar ese directorio el nivel de raíz de cualquier ruta de acceso raíz solicitudes de la misma.

Gracias por tu ayuda

Euhm, .htaccess? Tendría que depender del HTTP_REFERER extremadamente poco confiable, no, gracias.

Agregue un elemento en su HTML y listo. http://www.w3schools.com/tags/tag_base.asp


Editar: relativo a la raíz (“/ foo”) también debe tenerse en cuenta, por lo que después de la fijación de rutas relativas con :

.htaccess (extremadamente poco fiable porque la conmutación de subpath es casi imposible, y HTTP_REFERER son extremadamente poco confiables. en resumen: no usar)

 RewriteCond %{HTTP_REFERER} ^.*://[^/]+/subFIXED/([^/]+)/ RewriteCond %{REQUEST_URI} !^/subFIXED RewriteRule ^(.*)$ /subFIXED/%1/$1 [R=301,L,QSA] //drop the R=301 if POSTing, but url will not show the 'correct' one in that case 

Escollos:

  1. La publicación es incómoda (no se puede redirigir y preservar el POST, por lo que tendrá que aterrizar ‘normalmente’, lo que hará que el REFERER en solicitudes posteriores sea inútil / falso
  2. Referer a menudo no es enviado
  3. El cambio a otro ‘subAny’ de cualquier otro ‘subAny’ es imposible al enviar REFERER

Soluciones más viables:

  1. Posprocesar cada solicitud con script en el servidor, agregando un punto (.) A cada referencia (href / src) que comienza con ‘/’.
  2. El anterior se puede hacer con Javascript del lado del cliente, pero esto no es recomendable porque todos los enlaces para los buscadores y buscadores con js desactivados se romperían
  3. Haga un subdominio real, esto es solo una molestia.

En resumen, no hay soluciones deseables, excepto para crear subdominios reales. ¿Cuál es el problema exacto que está tratando de resolver que necesita esta solución de “ruta raíz fija”? Puede haber otros que no involucran tanta molestia.