На моем сайте я хочу добавить функциональность для пользователя, чтобы использовать свое имя пользователя в домене.
Как и в codeigniter прямо сейчас, я хочу дать пользователю использовать свой собственный URL для входа на сайт и делать другие вещи.
Например:
i Want www.username.mysite.com/login
или www.username.mysite.com/category
поэтому здесь пользователь может войти со своими учетными данными и добавить категорию. поэтому у меня есть два контроллера на моем сайте с логином и категорией.
Итак, как это сделать с помощью маршрутов Or .htaccess.
вот объяснение вашей проблемы здесь. http://www.joehayes.org/setting-up-wildcard-dns-for-subdomains.html
Хорошо, если вы прочитали объяснение по ссылке, вы должны знать, что сначала необходимо перенаправить все свои поддомены на www. в файле httpd.conf есть определение виртуального хоста, содержащее только yourdomain.com для перенаправления всех запросов на ваш DocumentRoot.
**ServerAlias yourdomain.com** ServerAdmin webmaster@yourdomain.com 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/
и вы должны изменить ServerAlias на * .yourdomain.com для извлечения всех поддоменов в папку корневого каталога документа . то вы должны иметь возможность mod_rewrite или url анализировать ваш uri, чтобы преуспеть в этом.
Используйте этот код в файле Vhost сервера:
<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>
и для вашего конфигурационного файла codeigniter:
$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; }