0

htaccess でサブドメインを実装しようとしています。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTP_HOST} !^www.
    RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.domain.com(.*)$
    RewriteRule ^(.*)$ http://domain.com/index.php?/public_site/main/%1/$1 [L]
</IfModule>

ahser.domain.comと入力すると、ブラウザの URL が変わります。RewriteRule で絶対 URL が使用されている場合にこれが起こらないようにするための htaccess オプションはありますか?

4

1 に答える 1

0

ドメインを含む完全な URL に書き換えないでください。別の Web サイトに移動するため、リダイレクトが生成されます。そこに置くことができmicrosoft.comます。リダイレクトせずにどのように機能しますか?

あなたがしなければならないことは、Web ページが元のドメインで動作することを確認することです。それで、クライアントがmyname.domain.com/...それをmyname.domain.com/index.php?public_site/main/myname/.... ドメインはそのままにしてください。はindex.php?、これらのドメインのいずれかで動作するように作成できます。たとえば、これでも機能します。

http://OTHER.domain.com/index.php?public_site/main/MYNAME/...

つまり、どの仮想ホストがそのパスにアクセスしてもかまわないように設定します。

それができたら、リライトで次のことができます。

# will not trigger redirect
RewriteRule ^(.*)$ /index.php?/public_site/main/%1/$1 [L]

URL を同じドメインの同じ書き換えルールに一致する長い URL にリダイレクトしているため、ループが発生しないように注意する必要があります。RewriteCondURL が既に で始まっている場合、この書き換えを適用しないように追加する必要があります/index.php?public_site/

于 2012-03-10T03:26:07.000 に答える