• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión

.htaccess Redireccionar con tres líneas de xxxxxx.com a (www.)dominio.com

lms

Administrador
Crear una redirección a 301 forzando a todas peticiones http a usar bien www.domain.com o domain.com:

Ejemplo 1 - Redireccionar domain.com a www.domain.com:

Insertar CODE, HTML o PHP:
RewriteEngine On
 RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
 RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
Ejemplo 2 - Redireccionar www.domain.com a domain.com:

Insertar CODE, HTML o PHP:
RewriteEngine On
 RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
 RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
Explicación de esta redirección 301 por .htaccess:

En el ejemplo 1 - Se redirecciona domain.com a www.domain.com. La primera línea llama a apache a iniciar el módulo rewrite. La siguiente línea:
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
indica que la siguiente regla sólo funciona cuando la llamada al host (o urls que apunten a ese host) NO es (- indicado con "!") www.domain.com.
El $ significa el fin para el host del dominio www.domain.com y el resultado es que todas las páginas de www.domain.com seguirán la siguiente regla de reescritura. Combinado con el inversor "!" el resultado es que cada host que no sea www.domain.com se redireccionará a ese dominio.

La etiqueta [NC] indica que el host no distingue mayúsculas de minúsculas. Se "escapa" el "." porque es un carácter especial (normalmente, el punto (.) es un carácter sin especificar).

La línea final describe la acción que se va a ejecutar:
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
El ^(.*)$ es un pequeño truco mágico. ¿Puedes recordar el significado del punto? Representa a cualquier carácter (pero sólo a uno). Así, .* significa que puede ser cualquier conjunto de caracteres, no sólo uno. Por ello ^(.*)$ contiene la url solicitada, sin el dominio.

La parte http://www.domain.com/$1 describe el objetivo de la regla de reescritura. Este es el nombre final que se usa para nuestro dominio, donde $1 contiene el contenido de (.*).

La siguiente parte también es importante, ya que genera la redirección 301 de forma automática: [L,R=301]. L significa que es la última regla a ejecutar. Tras esta reescritura el servidor devuelve un resultado. R=301 significa que el servidor devuelva permanentemente un movimiento 301 a la solicitud del navegador o de los motores de búsqueda.

En resumen: Con tres líneas henos redireccionado todo lo que no se llame como queremos que se nombre a nuestro dominio a nuestro dominio.

Salud2
 
Antes de activar, hay q tener en cuenta si tu foro está en una ruta diferente, debe incluir la ruta de acceso
a la carpeta raíz del foro (es decir, RewriteBase /foros/)
 

lms

Administrador
Esto es una redirección 301 a nivel de la raíz del dominio. Efectivamente, si quieres redireccionar a una carpeta (esté tu foro o no en ella) puedes hacerlo a través del RewriteBase /carpeta/ o cambiar RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] por RewriteRule ^(.*)$ http://www.domain.com/carpeta/$1 [L,R=301]

Salud2
 

Meneco

Nuevo
Yo cambiaría las reglas anteriores por:

Insertar CODE, HTML o PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.dominio\.com
RewriteRule (.*) http://www.dominio.com/$1 [L,R=301]
Insertar CODE, HTML o PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^dominio\.com
RewriteRule (.*) http://dominio.com/$1 [L,R=301]
 

Meneco

Nuevo
Si te fijas, las dos reglas son distintas.

La diferencia entre lo que publicaste tú y lo que publiqué yo es que las normas que facilitaste implica el uso de más recursos, debido a que la expresión regular contiene información adicional innecesaria.
 

Tize

XenForoUser
Hola a todos chicos, os adjunto mi código ya que no se especifica bien claro que líneas modificar para tenerlo correctamente configurado.
Mi web en cuestión tiene el foro en httpdocs directamente.
Si alguien me podría editar mi código para saber donde añadir dicha configuración sería genial.
Gracias y saludos.

PHP:
#    Mod_security can interfere with uploading of content such as attachments. If you
#    cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
#    SecFilterEngine Off
#    SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default

<IfModule mod_rewrite.c>
    RewriteEngine On

    #    If you are having problems with the rewrite rules, remove the "#" from the
    #    line that begins "RewriteBase" below. You will also have to change the path
    #    of the rewrite to reflect the path to your XenForo installation.
    #RewriteBase /xenforo

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data|js|styles|install) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
</IfModule>
 

lms

Administrador
Añade al final las líneas
PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.dominio\.com
RewriteRule (.*) http://www.dominio.com/$1 [L,R=301]
Cambiando dominio por la dirección de tu web (y el com si es net, org,....)

Salud2
 

lms

Administrador
Acabo de cambiar en XenFacil el PHP del servidor a la última versión estable (5.4.11) y he descubierto algunos errores, entre ellos uno de .htaccess.

Toda la configuración anterior se va la carajo y redirecciona a http://www.xenfacil.com/$1 que da un error de que no está definida la ruta.

Lo he solucionado cambiando en el .htaccess lo de arriba por:
Rich (BB code):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tuDominio\.com [NC]
RewriteRule ^(.*)$ http://www.tuDominio.com/$1 [L,R=301]
Cambia tuDominio por tu dominio real.

Para direccionar de www a dominio sin ellas, usad:
Rich (BB code):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.tuDominio\.com [NC]
RewriteRule ^(.*)$ http://tuDominio.com/$1 [L,R=301]
Cambia tuDominio por tu dominio real.

Fijaros qué cambian cosas respecto a lo del primer mensaje:
Rich (BB code):
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
Salud2
 
Última edición:

Tize

XenForoUser
Yo debo decir, que este asunto es algo muy útil en mis webs ya que todo funciona sin las www y ahora por desgracia todavía siguen con ellas ya que muchos usuarios la usan sin como todo el staff y conocidos pero mayormente el 80% las usan con las www
A pesar de que no me funciona el code más arriba añadido, esta noche pondré a prueba el nuevo httacces añadido por Lms para ver si funciona o no.
Las otras veces que lo probaba saltaba error directamente y no había manera, mantendré informado al respecto.
Gracias Lms por este nuevo dato.

Pd. Mi servidor funciona en linux
 

Tize

XenForoUser
Aquí me está funcionando de lujo.
Voy a probarlo esta noche, ya que ahora hay mucha gente conectada y veré que sucede.
La verdad es que funcionar sin ellas para mi es lo mejor.
Aquí por lo que puedo apreciar por más que las quite las www siempre se ponen :)
 

Tize

XenForoUser
Envía siempre a las webs con las WWW.
Que guapo, lo tienes como es debido tener a tu gusto! :)
Por cierto, ahora de repente estuve más de dos minutos que no podía acceder a ninguna de ellas, como que reiniciaste el servidor o algo raro.
Saludos.
 

Tize

XenForoUser
Buenas noches, acabo de realizar las pruebas y ahora parece que no da ningún tipo de error.
Pero sucede que no funciona, no sucede nada.
Me percaté también de tu mensaje de que habías actualizado el servidor y recordando que yo cuando había probado la primera opción me daba error directamente la web por tanto era problema de la versión de php que tenía una más actualizada.
Ahora que tenemos la misma no sucede nada es como si no hubiese cambiado nada.

Adjunto mi htt por si encuentras que puede ser por favor, no se si estará creando conflicto con lo que tengo para que no roben imágenes o que puede ser.
Gracias y saludos.

PHP:
#	Mod_security can interfere with uploading of content such as attachments. If you
#	cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
#	SecFilterEngine Off
#	SecFilterScanPOST Off
#</IfModule>
 
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default
 
<IfModule mod_rewrite.c>
	RewriteEngine On
 
	#	If you are having problems with the rewrite rules, remove the "#" from the
	#	line that begins "RewriteBase" below. You will also have to change the path
	#	of the rewrite to reflect the path to your XenForo installation.
	#RewriteBase /xenforo
 
	#	This line may be needed to enable WebDAV editing with PHP as a CGI.
	#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 
	RewriteCond %{REQUEST_FILENAME} -f [OR]
	RewriteCond %{REQUEST_FILENAME} -l [OR]
	RewriteCond %{REQUEST_FILENAME} -d
	RewriteRule ^.*$ - [NC,L]
	RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
	RewriteRule ^.*$ index.php [NC,L]
   
</IfModule>
 
   
	Options +FollowSymlinks
	#Protect against hotlinking
	RewriteEngine On
	RewriteCond %{HTTP_REFERER} !^$
	RewriteCond %{HTTP_REFERER} !^http://(www.)?MIWEB.com/ [nc]
	RewriteRule .*.(gif|jpg|png|jpeg)$ http://MIWEB.com/norobarimagenes.jpg[nc]
Lo que utilicé y puse al final de mi htaccess es:

Insertar CODE, HTML o PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.MIWEB\.com [NC]
RewriteRule ^(.*)$ http://MIWEB.com/$1 [L,R=301]
Quedando como resultado:

PHP:
#	Mod_security can interfere with uploading of content such as attachments. If you
#	cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
#	SecFilterEngine Off
#	SecFilterScanPOST Off
#</IfModule>
 
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default
 
<IfModule mod_rewrite.c>
	RewriteEngine On
 
	#	If you are having problems with the rewrite rules, remove the "#" from the
	#	line that begins "RewriteBase" below. You will also have to change the path
	#	of the rewrite to reflect the path to your XenForo installation.
	#RewriteBase /xenforo
 
	#	This line may be needed to enable WebDAV editing with PHP as a CGI.
	#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 
	RewriteCond %{REQUEST_FILENAME} -f [OR]
	RewriteCond %{REQUEST_FILENAME} -l [OR]
	RewriteCond %{REQUEST_FILENAME} -d
	RewriteRule ^.*$ - [NC,L]
	RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
	RewriteRule ^.*$ index.php [NC,L]
   
</IfModule>
 
   
	Options +FollowSymlinks
	#Protect against hotlinking
	RewriteEngine On
	RewriteCond %{HTTP_REFERER} !^$
	RewriteCond %{HTTP_REFERER} !^http://(www.)?MIWEB.com/ [nc]
	RewriteRule .*.(gif|jpg|png|jpeg)$ http://MIWEB.com/norobarimagenes.jpg[nc]
 
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.MIWEB\.com [NC]
RewriteRule ^(.*)$ http://MIWEB.com/$1 [L,R=301]
 
Arriba