Trabajo como desarrollador web, creando sitios web personalizados para los clientes. Mis archivos .htaccess
son generalmente muy simples. Generalmente solo hago 2 cosas:
/upload
a /admin/upload
para simplificar parte del código compartido entre el sitio web público y el sistema de administraciónTengo todo funcionando bien, aparte de una pequeña molestia, me pregunto si se puede hacer algo al respecto. Estoy usando php y trato de diseñar los sitios web de forma modular, de modo que no importa si el código está alojado en "example.com/" (el dominio real), "localhost/exampleproject2" (en mi máquina de desarrollo), o "mycompanywebsite.com/example.com" (Donde alojamos una versión "beta" para que el cliente la vea cuando lleguemos a ese punto en el desarrollo).
Desde el lado PHP de las cosas, no tengo problemas aquí. Pero en lo que respecta a Apache, tengo que crear 3 archivos .htaccess
ligeramente diferentes para cada uno de esos dominios:
ErrorDocument 404 /404.php Redirect 301 /upload /admin/upload
ErrorDocument 404 /exampleproject2/404.php Redirect 301 /exampleproject2/upload /exampleproject2/admin/upload
ErrorDocument 404 /example.com/404.php Redirect 301 /example.com/upload /example.com/admin/upload
Obviamente, esto no es un gran problema, pero es un poco molesto. Principalmente cuando yo u otra persona transfiero archivos a través de FTP y accidentalmente sobrescribo el .htaccess
de un entorno con su contraparte de otro entorno, y el sitio se rompe. También significa que no puedo incluir .htaccess
en mi repositorio de git sin posiblemente romper cosas.
Según mis pruebas, las URL relativas no parecen funcionar en absoluto. Creo que tal vez Apache simplemente no admite URL relativas en archivos .thaccess
para Redirect
s y ErrorDocument
s. Al menos eso es lo que parece. Me sale un error del servidor cuando lo intento.
Me gustaría tener una forma de tener un solo archivo .htaccess
que pueda compartir entre los 3 entornos e incluirlo en el repositorio de git. Si alguien sabe una buena manera de lograr esto, sería increíble. Las soluciones no tienen que usar .htaccess
, estoy abierto a cualquier solución que haga que mi código sea menos dependiente de rutas o URL absolutas.