2012-03-16 18 views
8

W mojej witrynie chcę dodać funkcjonalność, aby użytkownik mógł używać swojej nazwy użytkownika w domenie.Chcesz utworzyć dynamiczną subdomenę w kodzie kodów?

Podobnie jak w codeigniter teraz chcę dać użytkownikowi możliwość korzystania z własnego adresu URL do logowania się na stronie i robienia innych rzeczy.

Dla np:

Chcę www.username.mysite.com/login lub www.username.mysite.com/category

więc tutaj użytkownik może zalogować się z ich poświadczenia i dodać kategorię. więc mam dwa kontrolery w mojej witrynie z loginem i kategorią.

Jak to zrobić z trasami lub .htaccess.

+0

Możliwy duplikat [Tworzenie subdomen na bieżąco z .htaccess (PHP)] (http : //stackoverflow.com/questions/586129/create-subdomains-on-the-fly-with-htaccess-php) –

Odpowiedz

1

Oto wyjaśnienie Twojego problemu tutaj. http://www.joehayes.org/setting-up-wildcard-dns-for-subdomains.html

OK, jeśli przeczytałeś wyjaśnienie linku, wiedziałbyś, że powinieneś najpierw przekierować wszystkie poddomeny na stronę www. w pliku httpd.conf znajduje się definicja hosta wirtualnego zawierająca tylko twoja_domena.com w celu przekierowania wszystkich żądań do Twojej 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/ 

i należy zmodyfikować ServerAlias ​​ do * .twojadomena.com aby pobrać wszystkie subdomeny do swojego dokumentu głównego folderze . wtedy powinieneś być w stanie przetworzyć mod_rewrite lub url parsować swoje URI, aby odnieść sukces.

+0

Niestety, nie jest to właściwa odpowiedź, czego potrzebuję. –

+0

OK, chciałem tylko wskazać, czy masz dostęp ssh do swojego hosta, czy dostęp do pliku httpd.conf, czy też restartujesz serwer apache. –

+0

Nie, nie mam żadnego dostępu. ale jaki jest związek tworzenia dynamicznej subdomeny z serwerem ?? –

1

użyć tego kodu w pliku vhosta serwerze:

<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> 

oraz za CodeIgniter pliku konfiguracyjnym:

$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

sprawdź także wideo na ten temat. https://youtu.be/518eRiSOTlY – Iftikhar

Powiązane problemy