2012-03-16 13 views
8

Nel mio sito voglio aggiungere una funzionalità per l'utente per utilizzare il proprio nome utente con dominio.Vuoi creare sottodominio dinamico in codeigniter?

Come nel codeigniter in questo momento voglio dare all'utente l'uso del proprio URL per accedere al sito e fare altre cose.

Per esempio:

voglio www.username.mysite.com/login o www.username.mysite.com/category

ecco che l'utente può effettuare il login con le proprie credenziali e aggiungere la categoria. quindi ho due controller nel mio sito con login e categoria.

Quindi, come farlo con i percorsi O.htaccess.

+0

Possibile duplicato del [Crea sottodomini al volo con .htaccess (PHP)] (http : //stackoverflow.com/questions/586129/create-subdomains-on-the-fly-with-htaccess-php) –

risposta

1

Ecco una spiegazione del problema qui. http://www.joehayes.org/setting-up-wildcard-dns-for-subdomains.html

Ok se hai letto la spiegazione sul link, sapresti che dovresti reindirizzare tutti i tuoi sottodomini a www prima. nel file httpd.conf c'è una definizione di host virtuale contenente solo yourdomain.com per reindirizzare tutte le richieste a DocumentRoot.

**ServerAlias yourdomain.com** 
ServerAdmin [email protected] 
DocumentRoot /home/yourdoma/public_html 
BytesLog domlogs/yourdomain.com-bytes_log 
ServerName www.yourdomain.com 
User yourdomain 
Group yourdomain 
CustomLog /usr/local/apache/domlogs/yourdomain.com combined 
ScriptAlias /cgi-bin/ /home/yourdomain/public_html/cgi-bin/ 

e si dovrebbe modificare le ServerAlias ​​ a * .tuodominio.com per recuperare tutti i sottodomini nella cartella documento root. allora dovresti essere in grado di mod_rewrite o url parse il tuo uri per avere successo.

+0

Siamo spiacenti, non è una risposta adeguata, ciò di cui ho bisogno. –

+0

ok, volevo solo indicare che hai un accesso SSH al tuo host, o l'accesso al file httpd.conf, o il riavvio del server Apache. –

+0

No, non ho alcun accesso. ma qual è la connessione di creazione di sottodominio dinamico con server ?? –

1

Usa questo codice nel file di Vhost server:

<VirtualHost *:80> 
    DocumentRoot "/home/yourdoma/public_html/yourdomain" 
    ServerName yourdomain.com 
    ErrorLog "logs/yourdomain.local-error.log" 
    CustomLog "logs/yourdomain.local-access.log" common 
    <Directory "/home/yourdoma/public_html/yourdomain"> 
     AllowOverride All 
     Require all Granted 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "/home/yourdoma/public_html/yourdomain" 
    ServerName dummy-host.yourdomain.com 
    ErrorLog "logs/yourdomain.com-error.log" 
    CustomLog "logs/yourdomain.com-access.log" common 
    ServerAlias *.yourdomain.com 
    <Directory "/home/yourdoma/public_html/yourdomain"> 
     AllowOverride All 
     Require all Granted 
    </Directory> 
</VirtualHost> 

e per la vostra CodeIgniter file di configurazione:

$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''; 
$schema = isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'].'://' : 'http://'; 
$spl_host = explode("mysite.com", $host); 
$subhost = ''; 
if (count($spl_host) == 2) { 
    $subhost = current($spl_host); 
} 

if($host == $subhost.'mysite.com') { 
    $config['base_url'] = $schema.$subhost.'mysite.com'; 
} else { 
    $config['base_url'] = $schema.$host; 
} 
+0

controlla anche il video. https://youtu.be/518eRiSOTlY – Iftikhar