0

私の中に次のコードがあります.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /annsenglishmediumschool
    RewriteCond %{HTTP_HOST} shops.annsenglishmediumschool.com
    RewriteRule .* http://annsenglishmediumschool.com/index.php/shops [L]    
</IfModule>

これは問題なく動作しますが、ここで「ショップ」を変数として作成するにはどうすればよいですか? " " の代わりに入力するものは 、事前に感謝しshopsた後に来る必要があることを意味します。http://annsenglishmediumschool.com/index.php/

編集: 編集後、私の.htaccess見た目は次のようになります:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /annsenglishmediumschool
    RewriteCond %{HTTP_HOST} ^(.+?)\.annsenglishmediumschool\.com$
    RewriteRule .* http://annsenglishmediumschool.com/index.php/%1 [L]
</IfModule>

問題は、 annsenglishmediumschool.com/index.php/www のように右側に 'www' しかなく、他の文字列がないことです。

4

2 に答える 2

1

関心のあるドメイン名の一部をキャプチャして%1RewriteRule

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+?)\.annsenglishmediumschool\.com$
RewriteRule .* http://annsenglishmediumschool.com/index.php/%1 [R,L]

ホストが で始まらない場合www.、これはドメインの最初の部分を取得し、(.+?)それをRewriteRuleasに入れ%1ます。

すべてが期待どおりに機能したら、 に変更できRますR=301

有効にしてテストしない301でください。詳細については、この回答 .htaccess 書き換えルール をデバッグするためのヒント を参照してください。

于 2013-05-07T13:17:59.723 に答える