luzblanco

 
  • Decrease font size
  • Default font size
  • Increase font size
Inicio arrow Ubuntu 6.06 arrow Últimas arrow Configurar el archivo .htaccess
Configurar el archivo .htaccess PDF Imprimir E-mail
Calificación de usuario: / 14
MaloBueno 
Escrito por Valc   
domingo, 27 de agosto de 2006
Previo a seguir alguno de estos pasos uno debería tener instalado o recibir servicio con Apache, teniendo esta opción habilitada. Esta configuración está basada en la que se instala por defecto, junto con Apache2, desde los repositorios de Ubuntu 6.06 versión de escritorio, al día en que se escriben estas líneas.
 

Otras intalaciones de apache del tipo CGI, no son compatibles con su uso. Apache, puede cargar PHP como módulo o como CGI y en las del tipo CGI, no se pueden incluir instrucciones orientadas a modificar la configuración local de PHP desde el archivo .htaccess.

 

Con la compilación de paquetes a descargar desde los repositorios de Ubuntu, no es nuestro caso... es simplemente orientativo para quienes hayan accedido a esta web sin percatarse de su contenido específico.


También, tengase en cuenta que si tenemos acceso al archivo de configuración principal "000-default", para incluir en él muchas de las acciones que tengan que ver con las restricciones de acceso a directorios u otras directivas, o, al archivo "php.ini", para algunos parámetros de configuración (deshabilitar registers_globals o cosas de este tipo), sería más cómodo recogerlos o agruparlos sobre sus respectivos archivos de configuración principales.

.- Introducción
.- Habilitar el archivo
.- Enlazar mod_rewrite
.- Crear/editar el archivo
.- Comprobaciones previas a cumplimentarlo
.- Ejemplo de archivo .htaccess
.- Comprobar que el archivo está funcionando

.- Otros Usos del archivo .htaccess:
.- Impedir el listado del contenido del directorio
.- Control de acceso a directorios y archivos
.- Mensajes de error personalizados
.- Evitar robots maliciosos y gestores de descarga.
.- Redirigir las solicitudes entrantes a otra URL

webs de referencia:
http://www.vortexmind.net/index.php/2006-02-26-apache-htaccess-tweaking-tutorial/
Soporte apache
http://httpd.apache.org/docs/2.2/
Soporte ubuntu:
http://www.ubuntu-es.org



INTRODUCCIÓN

El .htaccess, es un archivo del tipo oculto (el punto a su izquierda lo indica), que podemos crear o visionar con nuestro editor favorito en formato ASCII.(con Gedit mismo)


Su función, es la de permitir a quien dispone de los permisos apropiados, la capacidad de personalizar las directivas del archivo de configuración principal.

Por lo tanto, téngase en cuenta que las modificaciones de las directivas realizadas sobre este archivo, pueden alterar a las contenidas dentro del archivo de configuración principal ("000-default" o "php.ini")

Las normas contenidas dentro de cada archivo .htaccess, se comprueban a cada solicitud de acceso que nos llegue; por lo tanto, la elaboración de este tipo de archivos, debería ser tan breve y a su vez efectiva como nos fuera posible. Sírvame de ejemplo, las pocas normas necesarias para bloquear muchas tentativas de ataques expoit o las de las necesarias para bloquear los accesos directos no deseados.

También sería bueno, recurrir al uso de comentarios informativos, para una mejor orientación y localización de los distintos bloques enfocados a evitar tal o cual cosa que dentro del archivo hubieramos podido incluir.

En cuanto a la configuración de este archivo, basicamente, puede estar orientada a:

.-Proteger el acceso, con un nombre de usario y contraseña, a según que carpetas
o
.- A condicionar, redirigiendo, permitiendo o denegando atender los distintos tipos de solicitudes que nos pudieran llegar via URL y así poder filtrar muchos de los intentos de intrusión o tipos de accesos no deseados, que nos llegarán.

En pricipio, voy a empezar con las configuraciones del segundo tipo y como en la propuesta inicial, que desde esta web se lanza, se invita a instalar, entre otras cosas, el CMS Joomla!, vamos a aprender primeramente ha habilitar el archivo .htaccess000-default y después ha habilitar el módulo mod_rewrite, para poder filtrar, entre otras muchas más cosas, la mayoría de ataques que, por medio de exploits conocidos nos pudieran llegar con intención de "cascar" a este CMS en concreto (otros.. no sé) y que gracias al archivo .htaccess, se verán frustrados. 





HABILITAR .htaccess

Para habilitar el archivo .htaccess, no basta con colocarlo en nuestro directorio raíz, es decir, tenemos que editar el archivo de configuración 000-default y habilitarlo o se hará caso omiso de cualquier archivo .htaccess que pudieramos haber colocado en alguna carpeta de nuestro servidor. Para ello, editamos y modificamos el archivo:

Aplicaciones >> Accesorios >> Terminal
En la consola que se nos abre:

sudo gedit /etc/apache2/000-default

Si todo ha ido bien, se habrá editado el conenido del archivo. La línea AllowOverride None, puede aparecer en más de una ocasión, para localizar la que nos insteresa modificar, tomemos como referencia a sus líneas inmediatamente superiores:


<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None

Y sustituimos el valor de AllowOverride por All. Quedando así:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All

(Guardamos el archivo)



ENLAZAR EL MÓDULO mod-rewite.so
Sin reiniciar aún Apache2, pues nos daría "errores internos del servidor", si existiera el archivo .htaccess configurado con instrucciones que requirieran del módulo mod_rewrite.so habilitado, o,  archivos/carpetas a proteger con permisos superiores a 755 ...procedemos a ejecutar desde la consola Nautilus en modo root:

sudo nautilus

Nos desplazamos desde el directorio raíz (doble click sobre Sistema de archivos), y seguimos esta ruta:

/etc/apache2/mods-avaiable

y localizamos dentro de esa carpeta el archivo rewrite.load

Nos situamos sobre el archivo y pulsamos el botón derecho del ratón.

Del menú que se despliega, seleccionamos Crear un enlace


Si todo ha ido bien, se habrá creado el enlace simbólico Enlace hacia rewrite.load


Localizamos el archivo y pulsamos sobre él con el botón derecho del ratón. Del menú que se despliega, seleccionamos Cortar.


Nos desplazamos nuevamente hasta la carpeta apache2, en esta ocasión entramos en la carpeta mods-enabled.


Sobre cualquier espacio en blanco, pulsamos con el botón derecho del ratón y seleccionamos de la lista Pegar.


Localizamos Enlace hacia rewrite.load y lo renombramos (Botón derecho del ratón Renombrar...) a rewrite.load


Nota: Hay instrucciones en modo consola, para realizar la misma operación, mucho más simples y rápidas, simplemente trato de mostraros lo que estamos haciendo... habilitar un módulo de los que tenemos disponibles.




CREAR/EDITAR EL ARCHIVO .htaccess
En pricipio, no dispondremos de archivo .htaccess en nuestro directorio raíz del servidor, a no ser que hubieramos instalado algún CMS en ese directorio, que tuviera previsto su uso; aunque la siguiente instrucción, a introducir via consola, serviría tanto para crearlo como para editarlo en el caso de ya existir.

sudo gedit /var/www/.htaccess

Guardamos el archivo y cerramos todas las ventanas que hubieramos podido abrir.



ALGUNAS COMPROBACIONES PREVIAS A CUMPLIMENTARLO

Hasta aquí, hemos creado un archivo .htaccess, habilitado su uso y también habilitado el uso del módulo rewrite.


Deberiamos, ahora, poder reiniciar Apache2 y no experimentar ningún tipo de error derivado de las modificaciones que hemos aplicado al acceder a nuestro dominio/subdominio registrado, hospedado en nuestra máquina o PC. Para ello:

Aplicaciones >> Accesorios >> Terminal
En la consola que se nos abre:

sudo /etc/init.d/apache2 restart

y accedemos, via navegador, a nuestro dominio/subdominio registrado.

Si se experimenta algún tipo de error, solo teniendo un archivo .htaccess en blanco, puede deberse a los permisos de archivo/carpeta, es decir, si tenemos archivos/carpetas con permisos superiores a 755, .htaccess, no actua.
 

Siendo que en archivos o carpetas con permisos superiores a 755, nuestros archivos .htaccess no tendrían capacidad para protegerlos con sus normas/directivas.. sería bueno el controlar que así los tenemos asignados en nuestro espacio web.

 

Joomla! sugiere o recomienda permisos chmod 644 para archivos y 755 para carpetas.. permitiéndonos de este modo mantener un equilibrio global ajustado entre la seguridad web y la funcionalidad web.

 

Para asegurarnos de de están de ese modo, desde la cónsola:

Cambiamos los permisos la carpeta donde esté instalado Joomla! a chmod 755

 

sudo chmod 755 /var/www/joomla

 

Nos colocamos dentro de la carpeta "joomla"

 

cd /var/www/joomla/
 

En su interior, buscamos archivos y los ponemos con chmod 644 

 
sudo find . -type f -exec chmod 644{} \;

 

En su interior, buscamos carpetas y las ponemos con permisos chmod 755 

 
sudo find . -type d -exec chmod 755 {} \;
 

Ponemos archivos y carpetas, a partir de  "joomla", con propietario y grupo www-data

 

sudo chown -R www-data:www-data /var/www/joomla/



sudo chmod -R 755 /var/www
 

En el caso de tener "las cosas" instaladas en otras rutas o estar probando con otras distribuciones GNU/Linux, el pocedimiento a seguir, sería prácticamente el  mismo; pero, adaptándonos a esas rutas, propietario y grupo asignado de distinto modo.

 
Ojo con esto si no habeis instalado el CMS en una carpeta dentro del directório raíz, porque de haber "más cosas  mezclándose con Joomla!".. aplicar este tipo de criterio podría dejarlas sin funcionar por haber archivos que requieran de permisos superiores a 644.

 

Ahora ya, si NO experimentamos errores del tipo "INTERNAL SERVER ERROR", podemos renombrar, si tenemos instalado Joomla!, el archivo htaccess.txt que entra junto con los archivos del paquete de Joomla! a .htaccess y editarlo. (Podeis incrementarlo en "normas" para las cosas que no lleva incluidas en su interior por defecto.

(nótese que el primer .htaccess, lo hemos creado en "/var/www/ y Joomla!, en teoría, lo tenemos instaldo en "/var/www/joomla/". De ser así, el ".htaccess en blanco" de dentro de "/var/www/"  se podría eliminar , o,  rellenar con  "normas /directivas" orientadas a proteger el contenido específico  de lo que hubiera  "por encima de Joomla!".)

 

A patir de "renombrado el htaccess.txt de Joomla! a .htaccess, pueden saltar errores internos del servidor porque, las normas / directivas que hay dentro del ".htaccess de Joomla!" podrían entrar en confilcto con la configuración de nuestro servidor (en principio y si no he obviado algo, para los que hayais instalado las cosas como se sugieren en esta web, no será el caso, porque está previsto)





EJEMPLO DE ARCHIVO .htaccess
Este corresponde al que se incluye en la instalación de Joomla! (1.0.10) con algunas modificaciones.Cualquier línea que lleve el símbolo "#" a su izquierda, no será interpretada, es decir, que entre los comentarios, podemos encontrar, por defecto, "Normas" comentadas que no surtirán efecto alguno a no ser que se "descomenten"

##
# @version $Id: htaccess.txt 4085 2006-06-21 16:03:54Z stingrey $
# @package Joomla
# @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
#
# Only use one of the two SEF sections that follow. Lines that can be uncommented
# (and thus used) have only one #. Lines with two #'s should not be uncommented
# In the section that you don't use, all lines should start with #
#
# For Standard SEF, use the standard SEF section. You can comment out
# all of the RewriteCond lines and reduce your server's load if you
# don't have directories in your root named 'component' or 'content'
#
# If you are using a 3rd Party SEF or the Core SEF solution
# uncomment all of the lines in the '3rd Party or Core SEF' section
#
#####################################################

##### SOLVING PROBLEMS WITH COMPONENT URL's that don't work #####
# SPECIAL NOTE FOR SMF USERS WHEN SMF IS INTEGRATED AND BRIDGED
# OR ANY SITUATION WHERE A COMPONENT's URL's AREN't WORKING
# Si surgen problemas con las URL, al tener un FORO SMF integrado y usando el puente, o, componentes que no #funcionan..  se nos informa que en los bloques que aparecen mas abajo del Standard SEF, y 3rd Party o Core #SEF.. deberiamos descomentar las líneas, en este recuadro indicadas, y comprobar si se han resuelto los #problemas (búsquese ##optional - see notes##, para localizarlas mejor). Tambień se nos informa que hay que #indicar la ruta correcta, en el caso de no estar alojado en el directorio raíz.
# In both the 'Standard SEF', and '3rd Party or Core SEF' sections the line:
# RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
# May need to be uncommented. If you are running your Joomla/Mambo from
# a subdirectory the name of the subdirectory will need to be inserted into this
# line. For example, if your Joomla/Mambo is in a subdirectory called '/test/',
# change this:
# RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
# to this:
# RewriteCond %{REQUEST_URI} ^(/test/component/option,com) [NC,OR] ##optional - see notes##
#
#####################################################


## Can be commented out if causes errors, see notes above.
# Al inicio del documento, se nos advierte que Options FollowSymLinks (seguir los enlaces simbolicos) puede dar
# problemas con algunas configuraciones del servidor. Esta directiva, es necesaria
# para poder usar el mod_rewrite. Puedes probar a deshabilitarla (agregar el símbolo # a su izquierda), tal vez, el administrador ya lo tuvo en cuenta y por ese motivo te esta
# fallando.(a mí, no me ha dado ningún tipo de error, así que, no la "comente")

#En caso de seguir con errores internos, se puede probar con Options +FollowSymLinks  y Options -FollowSymLinks

Options FollowSymLinks

#
# mod_rewrite in use
# Es importante incluir esta línea para activar el módulo que anteriormente habiamos
# enlazado(las reglas referntes al modulo, por encima de su activación, desencadenarian en errores)
RewriteEngine On


# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla/MamboDirectory (just / for root)
# En el caso de producirse errores de ruta, debería probarse a descomentar la linea de abajo y sobre todo si  el CMS está alojado en  el directorio raiz. En el caso de ser una carpeta pdría probarse con RewriteBase /carpeta

# RewriteBase /

# en los archivos .htaccess, según lo que escribamos, si no es correcto..podria terminar en un
# INTERNAL SERVER ERROR unas veces por error de sintaxis y otras por llamar a
# "cosas" que no tenemos habilitadas. Por lo tanto, bueno sería informarnos en ese sentido

 

 


#Normas SEF o SEO de Joomla!, normalmente, se tienen que comentar todas las líneas de este bloque

#si estamos usando otras extensiones para Joomla, del tipo Artio JoomSEF y descomentar las que 

#correspondan a "Normas SEF NO Joomla" del bloque que hay más abajo 


#
########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section

# Bloque perteneciente  a SEF SEO NO Joomla!(un poco lo mismo que antes... según corresponda SEF de Joomla o SEF de

# Terceros, se comenta un bloque y se descomentan las normas de reescritura del otro (los comentarios no, claro)

########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section

# Con estas instrucciones, podemos bloquear algunos exploids comunes, al no
# permitirles ejecutar o introducir algún tipo de instrucciones comunes y necesarias
# para su correcto funcionamiento.
#La información está extraida de este hilo:
# http://forum.joomla.org/index.php/topic,75376.0.html
# Yo intentaré estar pendiente de sus modificaciones, pero si tú te percatas antes,
# puedes colaborar avisádolo. :)
########## Begin - Rewrite rules to block out some common exploits
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)
RewriteCond %{QUERY_STRING} CONFIG_EXT(\[|\%20|\%5B).*= [NC,OR]
# Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)
RewriteCond %{QUERY_STRING} sbp(=|\%20|\%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|\%20|\%3D)
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits


#Con esta instrucción podemos deshabilitar register_globals
#En caso de usar Apache On habilita y Off deshabilta
# En caso de usar Apache2 1 habilita y 0 deshabilita

php_flag register_globals 0


# Con estas instrucciones, podemos evitar que enlacen, por ejemplo, "imágenes"
#(archivos con extensión jpg|jpeg|gif|png|css|js|pl|txt) de nuestro sitio en el
#suyo.. con el consiguiente robo de ancho de banda que ello supone si andamos justos
# o no nos interesa.

RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

#Bloquea accesos directos no permitidos (domain debe sustituirse por tu nombre de dominio)

# Blocking direct access
RewriteCond %{HTTP_REFERER} !^http://www.domain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://domain.com/.*$ [NC]
RewriteCond %{REQUEST_URI} ^.*index\\.php$
RewriteRule .* - [F]



#Esto no acaba aquí, pero ya da para empezar. En breve, se irá completando la
#información y tú puedes ser participe con tus colaboraciones, si así lo deseas.

(el archivo .htaccess que he usado para el ejemplo, no tiene por que coincidir con el de la última versión estable del CMS, siendo que debe tomarse a "modo de referencia" a la hora de "agregarle cosas" o de "reconfigurar las que pudieran venir por defecto")

 

No "copieis y pegueis" lo remarcado en verde en vuestros archivos .htaccess ...podría ocasionaros "errores de sintaxis en toda regla", en todo caso, "copiad y pegad" las normas o directivas.

 



¿COMO PUEDO COMPROBAR SI ESTA ACTUANDO .htaccess?
Podrias probar accediendo a tu web desde el exterior o pidiéndole a algún Amigo que introduzca alguna de las siguientes URLs en el navegador para probar:


Referente al bloque anti-exploits:
Para probar si te funciona, puedes intentarlo con esta URL desde tu navegador favorito:

Ejemplo 1

ó

 

Ejemplo 2 



Donde "tudominio" equivale a tu dominio/subdominio registrado.
Entiendo que la página ha la que te dirija, no ha de ser de error(Not Found), salvo que no te funcione el archivo .htaccess y debido a que "http://algunvandaloquepululaporinternet", no existe, y te de error por ese motivo, claro.

De estar todo bien configurado, aún con la web que intenta hacernos la pirula del ejemplo, debería enviarte a una pagina con mensaje del tipo:

Forbidden
You don't have permission to access /index.php on this server.

Respecto a la última línea de ese mismo bloque:

RewriteRule ^(.*)$ index.php [F,L]


Si no funciona, una variante sería modificar el valor "F" por el de 403 en nuestro archivo .htaccess, quedando así:

RewriteRule ^(.*)$ index.php [403,L]



Deberia llevarte a la página del tipo "FORBIDEN" igualmente; pero como puede no funcionar con la mayoria de versiones de apache, la norma queda escrita del primer modo.


Pirula usando una vulnerabilidad el editor FCK

 

Ejemplo 



En lugar de dar acceso limpio y rápido a nuestro escritorio...lo manda a la página de error "forbidden".

Nota: "http://tudirecciónweb/mambots/cualquier otra ruta apuntando a archivos, por ejemplo php o html"... también redirigirian ese intento de intrusión a la página del tipo forbidden.

Referente a Bloquear accesos directos
(Según tengamos el componente joomlaboard o simpleboard, elegimos una u otra)

http://tudominio/components/com_joomlaboard/image_upload.php?sbp=http://blarg.com

http://tudominio/components/com_simpleboard/image_upload.php?sbp=http://blarg.com

Deberia darnos este mensaje:
Direct Access to this location is not allowed. (el acceso directo a este lugar, no está permitido)




Tambien, para probar, puedes recurrir a alguna web que ofrezca conexión anónima (algunos errores los mostrará como "Not found" y no nos llevarán a la página de inicio o de "error" de nuestra web) , yo uso la extensión de firefox Anonymization; pero desde su web, también se puede probar:

http://anonymization.net/

Si esta de arriba os  falla, podeis intentarlo desde esta otra:

http://s1.iphide.com

(no aceptan directamente direcciones IP, han de ser con formato www.loquesea.loquesea)




OTROS USOS DEL ARCHIVO


Impedir el listado del contenido de un directorio
Una posible manera de evitarlo sin tener que recurrir al archivo .htaccess, seria colocar un archivo, en blanco, index.html dentro de cada directorio que NO nos interese que sea explorado; ya que, se da la circunstancia que ante la ausencia de archivo "index" dentro de las carpetas del servidor, por defecto Apache, muestra el contenido del directorio.

Si queremos indicarlo por medio del archivo .htaccess, dentro de cada directorio que hubieramos creado o nos interesase crear con esa opción deshabilitada, deberiamos crear también un archivo .htaccess, dentro de esa carpeta, y añadir, como mínimo, el parámetro Options -Indexes; teniendo en cuenta que si en lugar de indicarlo en un directorio puntual, lo hacemos desde el archivo .htaccess que apunta a nuestro directorio raiz "/var/www" impediremos la exploración de directorios en la raíz y en cualquier otra carpeta o subcarpeta que pudiera existir por debajo de esa ruta (sin archivo .htaccess específico dentro de ella).

O sea, el signo "-", normalmente, nos permite dehabilitar el uso del parámetro y lo mismo pasa con otras directiva como, por ejemplo, FollowSymLinks o MultiViews y cada archivo htaccess se encarga de aplicar normas desde su ruta y hacia abajo, hasta que encuentre otro archivo htaccess, con lo que se repite el proceso pero con las nuevas normas, apartir de esa ruta, del archivo htaccess encontrado

Options -Indexes (impide la exploración de directorios)

Options Indexes (permite la exploración de directorios)



Control de acceso a Directorios y archivos
Al contrario que desde el "archivo" 000-default, donde sí, podemos indicar una ruta, para apuntar a una carpeta a la que queremos restringir el acceso, con el archivo .htaccess, deberemos hacerlo ubicando el archivo dentro de cada una de las carpetas que nos interese restringir. Es decir, si colocamos el archivo dentro del directorio raíz, con direcctivas restrictivas de acceso, las normas, actuarán recursivamente en la raíz y resto de subcarpetas. Si particularmente, nos interesa restringir el acceso a la carpeta, por ejemplo, "webalizer" "administrator" "phpmyadmin", deberiamos colocar un archivo .htaccess dentro de la misma; teniendo en cuenta que, las normas incluidas en el archivo, pueden deshabilitar las contenidas dentro de archivos .htaccess alojados en carpetas superiores.
Algunos ejemplos para:

# Denegar el acceso a totalmente (ni nosotros podemos acceder)

Order allow, deny
deny from all

# Permitir el acceso para direcciones IP específicas (puede ponerse solo un "allow from" o incrementar la lista tanto como queramos y con las del tipo o tipos que nos interese)

Order allow, deny
deny from all
# nuestra máquina
allow from 127.0.0.1
# Nuestra IP privada (deben sustituirse los valores xxx, por los apropiados de nuestro caso)
allow from 192.168.xxx.xxx
# Todas las IPs dentro de un rango (red de area local, forzando la máscara de bits)
deny from all 192.168.0.0/24

Tambien se podría restringir, siguiendo la misma pauta , el acceso a archivos específicos, por medio de la etiqueta files:

# Impedir el acceso a nuestro archivo .htaccess (Permitiendo la ejecución de sus normas)

<Files .htaccess>
order allow,deny
deny from all
</Files>
# Impedir el acceso a nuestro archivo robots.txt (permitiendo que robots.txt ejecute sus normas)

<Files robots.txt>
order allow,deny
Satisfy All
</Files>



Mensajes de error personalizados
Podemos personalizar nuestros mensajes de error, por medio de la directiva ErrorDocument en la que hay que incicarle el tipo de error y la ruta donde encontrará el archivo a mostrar.Por ejemplo:

ErrorDocument 404 /carpetadeerror/paginadeerror-notfound.html
ErrorDocument 403 /carpetadeerror/paginadeerror-forbiden.html

Tambien se podrian redirigir los mensjaes de error a nuestra página de inicio, con lo cual, no se mantendría informado a nadie sobre el error producido.

ErrorDocument 404 http://www.luzblanco.com
ErrorDocument 403 http://www.luzblanco.com

(Se pueden seguir agregando tantas líneas como mensajes de error quisieramos personalizar)




Evitar robots maliciosos y gestores de descarga
En un intento de evitar ser rastreados insdicriminadamente (haciendo caso omiso del archivo robots.txt), se ha elaborado una lista para frenar a una cantidad considerable de los mas populares.
En esta misma lista, se han agregado también a los gestores de descarga del tipo "Flash Get" o "GetRight", los cuales deberíamos eliminar de la misma, en el caso de estar interesados en que tengan posibilidad de ofrecer su servicio.

No he encontrado al autor que originalmente elaboró la lista y por lo tanto no sé si se esta actualizando... miraré de averiguarlo y mantenerla actualizada.

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto: Esta dirección de correo está protegida contra los robots de spam y necesitas tener Javascript activado para poder verla [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]


Redirigir las solicitudes entrantes a otra URL


Veamos... suponiendo que quiero dejar de usar www.luzblanco.com como página de inicio a mi web y lo que me interesa es que se entre directamente al foro, he aquí una solución para que ello no suponga la perdida de mi "pagerank" u otras cosas de interés; ya que, haciendolo de otro modo podría ocasionar este tipo de "trastornos".(es solo un ejemplo, para poder verlo, no mi intención).

Se supone que estamos usando el archivo .htaccess suministrado por Joomla!, dentro de la ruta a la que apunta nuestra dirección URL actual  y esta línea debería pegarse por debajo de Rewrite base /

Redirect 301 /index.php http://www.luzblanco.com/foros_luzblanco/index.php

Bueno.. debes sustituir mis datos por los tuyos, solo es ejemplificativo para que no pongas cosas; ni demas; ni de menos  :)

Esto hará que, cuando accedan a "tuURLvieja.com" sean redirigidos a "tuURLnueva"
La diferencia fundamental a otras intrucciones que puedas encontrar por ahí, será que, el "301" indica a google y a otros buscadores que, tu url se ha movido definitivamente a la nueva dirección, con lo cual tu pagerank y demás cosas de interés..se trasladará al nuevo enlace (para otros cambios SOLO temporales, eliminad de la instrucción el 301, claro).

Esto puede venir muy bien para aquellos que, alojados externamente a su máquina, y, habiendo instalado el CMS en "/var/www" desean ahora tenerlo en "/var/www/loquesea" sin con ello tener que modificar/notificar "por todas partes" el cambio :)

Espero os resulte de utilidad "el cambio" no se aprecia.


Nota informativa: Valorar los artículos o noticias que vayas leyendo, aunque no ofrezca lecturas reales, pues no todo el que lee algo, lo valora dejando constancia; puede ayudar sensiblemente a esta web a la hora dar prioridad a las nuevas publicaciones, según el interés que despierten otras de referencia y su valoración recibida . Por favor, considéralo, solo toma unos segundos.
También si te interesa, puedes ayudar a incrementar/modificar/actualizar/rectificar la información desde una base lo más real posible, dejando tus aportes, dudas o comentarios en el foro general, sin para ello tener que estar registrado. Gracias!

Un cordial saludo. Valc
Modificado el ( domingo, 29 de abril de 2007 )
 
< Anterior   Siguiente >
Advertisement

Formulario de acceso






¿Recordar contraseña?
¿Registrarte? Regístrate aquí

Mini-Chat

Último mensaje: 18 horas, 10 minutos hace
  • M : Como configurar LAMP
  • morfel : esta muy buena la info ayuda en mucho para las personas que nos estamos iniciando en el mundo de linux
  • eeeee : we
  • gast_9584 : hola
  • BioVirus : www.joomlaencolombia.org
  • sktd! : Chicos, he seguido todo el tuto de Postfix con Gmail... pero cómo ejecutar Postfix?
  • gast_9682 : que pasa
  • gast_3979 : enhorabuena
  • DINAMI : www.formacionacademica.com
  • gast_2034 : ji

Emoticonos

Escaparate


Encuestas

¿Sobre qué tipo de contenido te gustaría encontrar más información?
 

Estadísticas

Usuarios: 98
Noticias: 42
Enlaces: 6
Visitantes: 431563

Sindicación

¿Quién está en línea?

Hay 3 Invitados y no Usuarios en línea

Destacamos

Al no ser profesional de la informática, ni experto del tema, puedo avanzarte que también está a tu alcance montar y administrar portales en internet, aún sin tener conocimientos de HTML u otros lenguajes de programación.

Ésto se debe en gran medida a que prácticamente todo el proceso, se puede realizar con intuitivos "golpes de ratón" ..y lo que no se puede realizar a "golpes de ratón", se puede resolver siguiendo tutoriales "limpios" o con soporte.

El escollo de mucha gente y por tanto factor decisivo a la hora de tomar la determinación de "montar una web", es la economía o un cierto temor a "tirar su dinero", es decir y por ejemplo, "me gustaría tener una web para tratar tal o cual tema; pero, no puedo afrontar el gasto mensual que ello supone." o "Estoy pensando en este proyecto para internet, pero si no tiene aceptación ¿Qué pasa con mi inversión?".... Así que, inicialmente se intentará afrontar el montaje desde casa, bajo ese punto de vista.

Sin ánimo de meter "miedo, espanto o pavor"..sino más bien para que os podais formar idea de en que consisten o cuales van a ser los pasos o puntos a tratar y hasta donde debemos llegar para obtener el resultado final satisfactorio o próximo a nuestra idea inicial.....