8

codeigniterで動的サブドメインを実装するにはどうすればよい.htaccessですか?

4

3 に答える 3

0

このルールはサブドメインを処理します

RewriteCond %{HTTP_HOST} ^([a-z0-9]+).yoursite.com.  should probably also include the hypen -.  RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).yoursite.com.
于 2016-09-06T09:54:14.027 に答える
0

このコードは私のサイトで機能しています。サイトを他のドメインまたはフォルダーに移動できます (必要なものは何でも)。

<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>
于 2016-02-27T07:23:26.553 に答える
0

サイトでサブドメインが有効になっていることを確認してください。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 が 1 つだけ取得されますhttp://yoursite.com/signup

于 2015-05-18T11:42:13.537 に答える