Как реализовать динамические поддомены в codeigniter с .htaccess? - PullRequest
8 голосов
/ 16 марта 2012

Как я могу реализовать динамические субдомены в codeigniter с .htaccess?

Ответы [ 3 ]

0 голосов
/ 27 февраля 2016

этот код работает для моего сайта, вы можете переместить свой сайт в другой домен или папку (что хотите).

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|application/assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
0 голосов
/ 06 сентября 2016

Это правило обрабатывает субдомены

RewriteCond %{HTTP_HOST} ^([a-z0-9]+).yoursite.com.  should probably also include the hypen -.  RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).yoursite.com.
0 голосов
/ 18 мая 2015

Убедитесь, что субдомены включены на вашем сайте.Когда вы заходите на test.yoursite.com, он должен перейти на страницу приветствия вашего сайта.Если вместо этого он выдает ошибку поиска DNS, это означает, что субдомены на вашем сайте не активированы.

Чтобы включить субдомены на вашем сайте, добавьте запись *.yoursite.com в записи зоны DNS.

Затем вставьте следующий код в ваш файл .htaccess и, соответственно, замените yoursite.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #codeigniter specific rule
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #codeigniter specific rule
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #this rule removes www from the URL if its used
    RewriteCond %{HTTP_HOST} ^www.
    RewriteRule ^(.*)$ http://yoursite.com/$1 [R=301,L]

    #the auth system URIs which don't have subdomains
    RewriteCond %{HTTP_HOST} ^yoursite.
    RewriteRule ^(signup|signin|forgot_password)/?$ index.php?/auth/$1 [L]

    #this rule handles the subdomains
    RewriteCond %{HTTP_HOST} ^([a-z0-9]+).yoursite.com
    RewriteRule ^(.*)$ index.php?/public_site/%1/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

При необходимости добавьте дополнительные правила для обработки аутентификации системы или поддоменов.Я знаю, что мой сайт получил красивые URI.

Важное замечание:

Я обнаружил, что по умолчанию URI поддоменов очень хорошо работают с codeigniter без каких-либо из вышеперечисленных правил.Вы можете получить доступ ко всему сайту с test.yoursite.com/# URI вместо www.yoursite.com/#.Но URI не являются красивыми, и существует более одного способа доступа к URI.

Так что, если вы используете вышеуказанные правила, это даст вам красивые URI и, что более важно, будетдать вам уникальные URI .Поэтому, если вы используете вышеуказанные правила, вы получите только один URI для страницы регистрации, а это http://yoursite.com/signup.

...