apache - enmascarar - redireccionar dominio htaccess
.htaccess reescribir el subdominio en el directorio (8)
¿Es posible utilizar .htaccess para volver a escribir un subdominio en un directorio?
Ejemplo:
muestra el contenido de
Intenta colocar este archivo .htaccess en la carpeta del subdominio:
RewriteEngine On
RewriteRule ^(.*)?$ ./subdomains/sub/$1
Redirige a http://domain.com/subdomains/sub/ , cuando solo desea que se muestre http://sub.domain.com/
Intenta poner esto en tu archivo .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ http://domain.com/subdomains/sub/$1 [L,NC,QSA]
Para una regla más general (que funcione con cualquier subdominio, no solo sub
) reemplace las últimas dos líneas con esto:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)/.domain/.com
RewriteRule ^(.*)$ http://domain.com/subdomains/%1/$1 [L,NC,QSA]
No soy un experto en mod_rewrite, a menudo me cuesta trabajo hacerlo, pero lo he hecho en uno de mis sitios, puede necesitar otros indicadores, etc., según sus circunstancias. Estoy usando esto:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain/.example/.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L]
Cualquier otra regla de reescritura para el resto del sitio debe ir después para evitar que interfieran con las reescrituras de su subdominio.
Para cualquier solicitud de dominio secundario, use esto:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www/.band/.s/.co
RewriteCond %{HTTP_HOST} ^(.*)/.band/.s/.co
RewriteCond %{REQUEST_URI} !^/([a-zA-Z0-9-z/-]+)
RewriteRule ^(.*)$ /%1/$1 [L]
Simplemente haga que una carpeta sea igual al nombre del subdominio que necesita. La carpeta debe existir así: domain.com/sub para sub.domain.com .
Puede usar la siguiente regla en htaccess para reescribir el subdominio en una subcarpeta:
RewriteEngine On
#If the host is "sub.domain.com"
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]
#Then rewrite any request to /folder
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
Línea por línea Explicación:
RewriteEngine on
La línea de arriba le dice al servidor que encienda el motor para reescribir urls.
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [NC]
Esta línea es una condición para RewriteRule donde coincidimos con el host http usando el patrón de expresiones regulares. La condición dice que si el host es sub.domain.com entonces ejecuta la Regla.
RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]
La regla coincide con http://sub.domain.com/foo y la redirige internamente a http://sub.domain.com/folder/foo .
Reemplace sub.domain.com con su subdominio y carpeta con el nombre de la carpeta a la que desea apuntar su subdominio.
Redirigir el directorio del subdominio:
RewriteCond %{HTTP_HOST} ^([^.]+)/.(archive/.example/.com)$ [NC]
RewriteRule ^ http://%2/%1%{REQUEST_URI} [L,R=301]
Tuve el mismo problema y encontré una explicación detallada en http://www.webmasterworld.com/apache/3163397.htm
Mi solución (los contenidos de los subdominios deben estar en una carpeta llamada sd_subdomain
:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www/.
RewriteCond %{HTTP_HOST} subdomain/.domain/.com
RewriteCond $1 !^sd_
RewriteRule (.*) /sd_subdomain/$1 [L]
redirige a la misma carpeta al subdominio: .httaccess
RewriteCond %{HTTP_HOST} !^www/.
RewriteCond %{HTTP_HOST} ^([^/.]+)/.domain/.com$ [NC]
RewriteRule ^(.*)$ http://domain/.com/subdomains/%1