Generalidades sobre WebDAV

Generalidades

La creación y el control de versiones distribuidos basados ​​en la web (WebDAV) es una extensión del protocolo HTTP que permite a los usuarios editar y administrar archivos en forma colaborativa en servidores web remotos. La World Wide Web, tal como la concibió Tim Berners-Lee, siempre tuvo la intención de ser un medio legible y escribible. Sin embargo, a medida que la web creció, se convirtió en un medio en gran parte de solo lectura. WebDAV ha surgido como una forma de restaurar esa funcionalidad.

Sin acceso a tus archivos .htaccess y .htpasswd

Las instrucciones de este artículo crean archivos .htaccess y .htpasswd que serán propiedad del servidor. Esto significa que no podrás editar manualmente ninguno de estos archivos si es necesario. Además, estas instrucciones sobrescribirán cualquier archivo .htaccess existente. Asegúrate de hacer una copia de seguridad de tu archivo .htaccess existente antes de comenzar con estos pasos.

Si solo necesita proteger con contraseña su sitio y necesitará acceder a su archivo .htaccess y .htpasswd en cualquier momento en el futuro, debe seguir las instrucciones del siguiente artículo. 

Estas instrucciones te guían a través de cómo crear manualmente tu archivo .htaccess y .htpasswd.

HTTPS

Si deseas acceder a tu directorio WebDAV a través de una conexión segura, debes comprar un certificado SSL. Visita el siguiente artículo para más detalles:

Acceso de usuario

El panel DreamHost te permite especificar qué usuarios tienen acceso a un directorio habilitado para WebDAV. Sin embargo, de forma predeterminada, cada usuario tiene acceso completo a todos los archivos de todo el directorio. Puede que esto no sea un problema con un directorio WebDAV muy simple, pero a medida que el directorio WebDAV crece en usuarios, pueden surgir ciertos problemas. Por ejemplo:

  • No hay seguridad a nivel de archivo.
– Los usuarios pueden potencialmente sobrescribir las ediciones de otro usuario e incluso eliminar el archivo de otro usuario.
– Todos los usuarios de la carpeta pueden ver los archivos destinados a ser privados.
  • La administración de usuarios no se puede hacer automáticamente (por ejemplo, no se pueden agregar usuarios a través de scripts PHP).

La mejor solución es especificar niveles de acceso (Listas de control de acceso) por carpeta (o incluso por archivo). A medida que aumenta el número de usuarios, puedes administrar la lista de usuarios y contraseñas automáticamente utilizando scripts.

Esto se puede hacer creando/editando un archivo .htaccess colocado en cada carpeta donde desees hacer una excepción.

Habilitar WebDAV en un dominio completo, no solo en una subcarpeta

La creación del directorio WebDAV en tu panel DreamHost no te permite aplicar WebDAV a un dominio completo, solo funciona en el subdirectorio específico. Sin embargo, al usar un archivo .htaccess, puedes hacer que WebDAV funcione cuando visite la URL del sitio sin el subdirectorio.

WebDAV utiliza su propio archivo .htaccess y .htpassword que están controlados por la interfaz WebDAV y pueden no estar siempre visibles. Esto puede causar un comportamiento "anormal" en ciertos casos, como crear un directorio WebDAV fuera del directorio raíz de tu dominio (e.j., https://example.com/webdav/). Se sugiere que si estás creando un directorio WebDAV, te asegures de que el WebDAV de destino (así como la carpeta principal) esté razonablemente aislado de tu sitio principal.

  1. Visita la página Htaccess/WebDAV para configurar un directorio con WebDAV habilitado.
    • Para el resto de estos pasos, se asume que el directorio se llama "site".
  2. Si ya tienes datos o directorios que deseas incluir en el nuevo sitio WebDAV, conéctate atsu nuevo recurso compartido WebDAV y subelos. La URL de tu recurso compartido de WebDAV debería ser algo como https://example.com/site/.
    • No te preocupes por modificar los enlaces dentro de tus páginas, seguirán funcionando exactamente de la misma manera que lo hacen actualmente.
    Los pasos restantes te ayudarán a crear un archivo .htaccess para las solicitudes de reescritura en https://example.com utilicen los datos almacenados en https://example.com/site/:
  3. En la carpeta principal de tu dominio, crea un archivo llamado ".htaccess". Asegúrate de incluir el punto al principio.
  4. Pon el siguiente texto en el archivo:
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !site/
    RewriteRule ^(.*)$ /site/$1
    
    • La primera línea enciende la reescritura.
    • La segunda línea le dice al servidor web que no sobreescriba https://example.com/site/.
    • La tercera línea le dice al servidor web que sobre escriba todas las solicitudes a https://example.com/ para que use los datos de https://example.com/site/.
  5. Si tienes directorios que no deseas que estén bajo el control de WebDAV, agrega líneas RewriteCond adicionales como la de "site". Por ejemplo, si no deseas que se reescriban los "scripts" del directorio, agrega lo siguiente:
    RewriteCond %{REQUEST_URI} !scripts/
    

Cuando visitas https://example.com/ deberías de hecho obtener la información de https://example.com/site/, pero tus URLs se verán igual que antes.

Solución de Problemas

WebDAV y mod_rewrite

Cierto software como WordPress y Joomla colocan las directivas Rewrite en el directorio base de tu sitio, incluso cuando se instalan en un subdirectorio. Esto posiblemente podría interferir con el acceso a WebDAV. Si es así, modifica el .htaccess base de la siguiente manera. Antes de cada RewriteRule agrega:

RewriteCond %{REQUEST_URI} !/webdavdir
Dónde webdavdir es el directorio al que desea acceder a WebDAV. Para varios directorios, colóquelos entre paréntesis separados por tuberías, así:
RewriteCond %{REQUEST_URI} !/(webdavdir1|webdavdir2|webdavdir3)

Editar archivos normalmente procesados previamente por el servidor web

Un problema con WebDAV es que no te permite editar el origen de los archivos procesados ​​por el servidor, incluidos PHP, shtml, Perl, etc. Esto se debe a que utiliza el mismo comando para "OBTENER" el archivo que tu navegador web. El servidor web no tiene forma de no procesar el archivo PHP y te da la salida en lugar del código fuente.

Agregar esta línea a tu archivo .htaccess deshabilita todo el procesamiento:

SetHandler default-handler

Esto obliga a los archivos .php a mostrar su fuente, incluidas las contraseñas que hayas codificado. Deberás cambiar los permisos en tu archivo .htaccess para editarlo. Cualquier cambio realizado en este archivo se sobrescribirá si realizas algún cambio en el panel a tus opciones de htaccess/webdav.

También puedes agregar .txt al final de cualquier archivo para forzar su lectura como un archivo de texto normal. Por ejemplo, cambia test.php por test.php.txt.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?