web-dev-qa-db-ja.com

WwwなしのURLで送信ページに直接リダイレクト - Multiwordpressインストール

これはWordpress関連の質問です。問題は複数インストールのWordpressに由来するためです。しかし、それはまた.htaccessで、サーバーサイドにも関連しています。

私の問題は:ユーザーがWWWを付けずに私のURLをタイプすると、それは彼/彼女にログインを促す提出URLに連れて行きます。 https://mister-tea.fr からこのようなURLに( https://www.fixie-lille.fr/wp-signup.php?new=mister-tea.fr ではなく) https://www.mister-tea.fr

私は本当にそれを望んでいません、私はちょうどユーザーがWWWで同じドメインと同じURLにリダイレクトされることを望みます。

私のメインドメインは https://www.fixie-lille.fr (FrのWebサイト)です。

ルールはうまくいくでしょう:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_Host} ^fixie-lille.fr$
RewriteRule (.*) https://www.fixie-lille.fr/$1 [R=301,L]
</IfModule>

しかし、それは他のウェブサイトを壊します。

私は.htaccessでいくつかの規則を使ってみましたが、うまくいかないようです。私のウェブサイトはすべてWWWドメインを使用しており、WWWがないと使用できません。

それに加えて、私はhttpとhttpsの間でユーザーをリダイレクトするためにこの規則を使います

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

次の規則は悪い干渉を与える可能性がありますか?

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

それに加えて、すべてが1回のインストールで複数のWordpressで問題なく動作します。

事前に感謝します、私はさらなる質問に答えるためにあなたの処分にあります

1

あなたは複数のドメインを持っているので、あなた自身をリダイレクトに含めることはできません。それは私があなたがやろうとしていると思うものです。また、指令が正しい順序であることを確認する必要があります。

あなたのサイトはすべてwwwサブドメインを使っているので、代わりに以下を試してください。ただし、これは他にサブドメインがないことを前提としています。

RewriteEngine On

# non-www to www (and HTTPS)
RewriteCond %{HTTP_Host} !^www\.
RewriteRule (.*) https://www.%{HTTP_Host}/$1 [R=301,L]

# HTTP to HTTPS 
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]

# WordPress directives follow...

非wwwからwwwへのリダイレクトは、要求されたホストがwwwを開始しないかどうかをテストします。そうでなければ、単純にそれを付加します。

カスタムディレクティブにRewriteEngineディレクティブを繰り返す必要はなく、<IfModule mod_rewrite.c>ラッパーも必要ありません。

HTTPからHTTPSへのリダイレクトに関しては、 置換 で使用されていなければRewriteRule パターン をキャプチャする必要はありません。すなわち。後方参照の代わりに%{REQUEST_URI}を使用するとき。

いつものように、テストの前にブラウザのキャッシュをクリアしてください。

0
MrWhite