2011-04-11 18 views
9

Me he encontrado con un problema que es que mi servidor web no aparece ofrece dominios de complemento.¿Cambiar la raíz del documento de un dominio estacionado?

Actualmente tengo un nombre de dominio que apunta a mis servidores de nombres.

Entré en cPanel para agregar un dominio de complemento que apunta a un subdirectorio, pero todo lo que está disponible en cPanel es estacionar el dominio en la raíz del documento que es 'public_html /'.

Para que el tráfico proveniente del dominio estacionado obtenga el contenido incorrecto, lo que obviamente no es bueno.

Tengo la sensación de que esto no es posible, pero ¿puedo cambiar la raíz del documento de dominio estacionado de 'public_html /' a 'public_html/sub-directory'?

¿O quizás puedo editar el archivo .htaccess para redirigir el tráfico del dominio estacionado al subdirectorio?

Básicamente quiero esta dirección; www.parked-domain.com/

Para mostrar el contenido de este subdirectorio; www.first-domain.com/parked-directory

Espero que esto sea posible; de ​​lo contrario, tendré que consultar un nuevo servidor web.

Saludos,

Dean.

+1

¿Aún necesita una respuesta para esto o ya encontró una? –

+0

Una buena pregunta que a menudo me he hecho. Tengo acceso a dominios complementarios pero no me gustan debido a las innecesarias asignaciones de usuarios y carpetas que necesitan y he considerado esto como una posible solución. Tendré que dar una respuesta a estas respuestas, pero estaría interesado aquí cómo fue con este – Madivad

Respuesta

9

Añadir lo siguiente a su archivo .htaccess:

RewriteRule ^parked-directory - [L] 
RewriteCond %{HTTP_HOST} ^(www\.)?parked-domain\.com$ [NC] 
RewriteRule ^(.*)$ parked-directory/$1 [L] 
+1

¡Esa respuesta parece casi demasiado corta y dulce! Gracias por esto, al igual que con la respuesta de Greg, espero probarlo yo mismo cuando tenga un momento. Gracias a usted también Sir :) – Madivad

+0

hm ... un sitio de hecho cargó, pero css e imágenes no se cargaron ... – rothschild86

+0

actualización: para que las imágenes funcionen, vaya a wp-admin/network/site-settings .php? id = 2 (cualquiera que sea el id.) y cambie siteurl para incluir el directorio estacionado/al final. deje la URL de inicio como solo el dominio-estacionado – rothschild86

2

en lugar de utilizar "dominio aparcado", utilice el dominio adicional - y aquí sólo el directorio raíz a public_html/subdirectorio donde desea señalar su nuevo dominio "estacionado" ...

+3

En lugar de una respuesta que refleje un escenario perfecto, lea la pregunta donde se indica que los dominios de complemento no están disponibles. Muchos entornos de hosting están configurados de esta manera, ofreciendo 0/∞ para dominios y 0/∞ dominios aparcados, pero 0/0 para complementos, y probablemente también anunciaron los aparcados y subdominios, lo que implica una capacidad de alojamiento múltiple.Las opciones de cPanel para usar complementos seguirán apareciendo, pero no funcionarán, y la opción de configurar hosts virtuales en httpd.conf no estará disponible debido a la falta de acceso. Lo que queda es Gerben y [esta opción mod_rewrite] (http://httpd.apache.org/docs/2.4/rewrite/vhosts.html). –

4

Si bien es desaconsejable, es posible configurar dinámicamente sus sub-hosts de dominio estacionado usando mod_rewrite.

Aquí hay una muestra de .htaccess para alojamiento múltiple a través de mod_rewrite utilizando un formato dinámico que requiere nombre de dominio-estacionado = nombre de subcarpeta, y cubre otros dominios aparcados en su sitio que se redirigen o se ignoran.

# tell mod_rewrite to activate and give base for relative paths 
    RewriteEngine on 
    RewriteBase /

# permanent redirect of unused parked domains so they do not try to resolve. 
# only use this redirect if you want multiple names to point to another. 
# otherwise, replace the rewrite rule with: RewriteRule . - [F,L] 
    RewriteCond %{HTTP_HOST} ^(www\.)?parked-domain1\.com$ [NC,OR] 
    RewriteCond %{HTTP_HOST} ^(www\.)?parked-domain2\.com$ [NC,OR] 
    RewriteCond %{HTTP_HOST} ^(www\.)?parked-domain3\.com$ [NC,OR] 
    RewriteCond %{HTTP_HOST} ^(www\.)?parked-domain4\.com$ [NC] 
    RewriteRule ^(.*)$   http://main-site.com/$1 [L,R=301] 

# if you have an active site in hosting root folder, 
# then tell it not to look for a subfolder by skipping next rule 
    RewriteCond %{HTTP_HOST} ^(www\.)?main-site\.com [NC] 
    RewriteRule ^(.*)$   - [S=1] 

# the domain-name = sub-folder automation 
# thus parked-domain5.com in /parked-domain5/ 
    RewriteCond %{HTTP_HOST} ([^.]+)\.com 
    RewriteCond %{REQUEST_URI} !^/%1 
    RewriteRule ^(.*)$   %1/$1 [L] 

# if you're hosting wordpress sites, this is a tweaked variant of the WP code. 
# add the rest of this example only if: 
# 1. main-site.com is a WP site 
# 2. you remove .htaccess in subfolders 
# if (1.) true, yet keeping subfolder .htaccess, uncomment next 2 lines: 
# RewriteCond %{HTTP_HOST} !^(www\.)?main-site\.com [NC] 
# RewriteRule ^(.*)$ - [S=1] 
#### BEGIN WordPress, improved 
# if this request is for "/" or has already been rewritten to WP 
    RewriteCond $1 ^(index\.php)?$ [OR] 
# or if request is for image, css, or js file 
    RewriteCond $1 \.(gif|jpg|jpeg|png|css|js|ico)$ [NC,OR] 
# or if URL resolves to existing file 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
# or if URL resolves to existing directory 
    RewriteCond %{REQUEST_FILENAME} -d 
# then skip the rewrite to WP 
    RewriteRule ^(.*)$ - [S=1] 
# else rewrite the request to WP 
    RewriteRule . /index.php [L] 
# END WordPress 
+0

buena respuesta Greg, como señalé en mi comentario la pregunta, me ha interesado esto. ¿Puede decirnos por qué está mal visto? Supongo que es porque estamos pasando por alto una función incorporada. Comprendí la mayor parte de tu respuesta, y espero con ansias volver a digerirla cuando tenga el tiempo. Gracias. – Madivad

+1

Básicamente es la resolución DNS a nivel de archivo. Está designando ubicaciones de archivos de sitio en una de las últimas etapas, luego procesándolas a través de una serie de condiciones. Respuesta simple: es una forma lenta de hacerlo. Si se piratea, o la empresa de alojamiento cambia de política con archivos .htaccess que niegan mod_rewrite, entonces usted tiene una horda de clientes insatisfechos. La solución de 3 líneas de @Gerben es el código más simple que realiza el equivalente al mío pero que requiere .htacess para actualizarse con cada nuevo dominio, mientras que el mío es automático, abastece un alojamiento raíz y WordPress. –

Cuestiones relacionadas