2012-11-26 13 views
14

voglio avere questa situazione:Creazione jolly Sub Dominio Usando Apache VirtualHost

  1. se richiesta dell'utente di utilizzare questo URL: example.com o www.example.com, utente vedrà index.php in questa directory /home/admin1/public_html/

  2. ma quando la richiesta dell'utente utilizza un altro sottodominio (carattere jolly) ad esempio: freediscount.example.com, l'utente vedrà index.php in questo percorso: /home/admin1/public_html/userweb/freediscount.example.com

supporto tecnico sul mio hosting mi suggeriscono di utilizzare questo metodo: http://www.wiredstudios.com/php-programming/setting-up-wildcard-dns-for-subdomains-on-cpanel.html

sulla base di tale esercitazione, il PHP ha un nuovo lavoro ... per reindirizzare sulla cartella specifica quando richiesta dell'utente con sub dominio. Non mi piace questo metodo. per me, sarebbe meglio se Apache fosse in grado di gestirlo.

quasi vicino a quello che ho bisogno è questo metodo: Virtualhost For Wildcard Subdomain and Static Subdomain

ma, ho un problema con VirtualHost impostazione, come creare VirtualHost correttamente per quella situazione?

ecco quello che ho fatto, ma non ha funzionato:

## I think this one is for www or without www, automatically generated with WHM 
<VirtualHost xx.xx.xx.xx:80> 
ServerName example.com 
ServerAlias www.example.com 
DocumentRoot /home/admin1/public_html 
</VirtualHost> 

## Here's what I'm trying to add 
<VirtualHost xx.xx.xx.xx:80> 
    ServerName example.com 
    DocumentRoot /home/admin1/public_html/userweb/* 
</VirtualHost> 

risposta

14

I sottodomini jolly sono sicuramente possibili utilizzando gli host virtuali Apache.

Avevo sostanzialmente gli stessi requisiti e sono riuscito a farlo funzionare con il modulo mod_vhost_alias.so di Apache. Prova questo nel file http-vhosts.conf:

DocumentRoot "/home/admin1/public_html/userweb/" 
<Directory "/home/admin1/public_html/userweb/"> 
    Options None 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    VirtualDocumentRoot /home/admin1/public_html/userweb/%1.example.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName example.com 
</VirtualHost> 

Si noti che non ho ancora testato questo, ma è abbastanza vicino alla soluzione che ha funzionato per me.

Tutti i dettagli della mia soluzione sono qui: http://www.calcatraz.com/blog/wildcard-subdomains-in-apache-1422

+0

Link morto a partire da oggi. – kontur

8

prova con questo:

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/userweb/freediscount.example.com 
    ServerName other.example.com 
    ServerAlias *.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/admin1/public_html/ 
    ServerName example.com 
</VirtualHost> 

Ordine di host virtuali & loro questioni di specificità.

+0

freediscount.example.com è solo un esempio. in un mondo reale, l'utente può digitare sottodominio che hanno creato. ad esempio: mystore.example.com >> /home/admin1/public_html/userweb/mystore.example.com –

+0

quindi non credo che rendendolo statico DocumentRoot risolverà questo problema. È dinamico. –

+0

Non è possibile creare DocumentRoot con caratteri jolly. Devi farlo attraverso il file .htaccess o tramite php. Questo è ciò che puoi fare con virtualhosts così com'è. MA non vi è mod apache per prendersi cura di ciò che vuoi. Ma così com'è, penso sia così. –

Problemi correlati