各サイトのサブディレクトリを使用して、パスベースのWPマルチサイトを設定しました。サブサイトがwwwなしでアクセスされる場合を除いて、それはすべてうまくいきます。例えば -
//mainsite/subsite
は常に//mainsite"
にリダイレクトします
//www.mainsite/subsite"
は常に//www.mainsite/subsite"
にリダイレクトします
Wwwなしでサブサイトにもリダイレクトするように要求したいのですが。
すなわち//mainsite/subsite"
は//www.mainsite/subsite"
にリダイレクトします
私はhtaccessのルールを試してみた - しかし何もうまくいかないようだ
Rewritecond %{HTTP_Host} !^www\. [NC]
RewriteCond %{REQUEST_URI} ^/subsite/$1 [NC]
RewriteRule ^www.mainsite.com/subsite/$1 [L,R=301]
すべてのワイルドカードは、wwwに直接接続するようにDNSで設定され、Apache configは、wwwというエイリアスを持つサーバー名としてプレーンドメインを持ちます。
誰かが前にこれを横切ったことがありますか?
コードに対する謝罪 - どうやら私は3つ以上のhttpリンクを投稿することはできないので、//
を持つものはそれの前にhttp:
があると仮定します。
あなたは近いです。
より多くのシナリオを取り込むための場所をいくつか追加し、ルールでHTTP_Host変数を使用しました。 $1
は、上記の条件でキャプチャされたものと一致するため、条件には必要ありません。
<IfModule mod_rewrite.c>
RewriteEngine On
Rewritecond %{HTTP_Host} !^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} ^/subsite/? [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [L,R=301]
</IfModule>
私はあなたのテストを確認するために Made With Loveの.htaccessチェック をお勧めします。