質問

永久に私のドメインをリダイレクトするためにmod_rewriteファイルで次の.htaccessを使用しています。

から

href="https://domain.com" rel="nofollow"> https://domain.com

https://www.domain.com

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
.

サブドメイン

をリダイレクトするためのmod_rewrite

から

https://subdomain.domain.com

https://www.uwwddomain.domain.com

iは、.htaccess mod_rewriteを使用してhttps://からhttps://www.への3RDレベルドメインをどのようにリダイレクトすることができますか?

ありがとう、

役に立ちましたか?

解決

最初のルールを次のように変更します。これはブラウザを1ホップで正しいURLにリダイレクトする必要があります。2番目の条件では、URLの前にある場合、または最初のキャプチャグループ内の何もない場合、または2番目のキャプチャグループに残っているものはすべて一致します。これは直感的に見えるかもしれませんが、これはURLの前に2回www.を持っていないことを確認しますが、まだそこにない場合はHostnameにwww.を追加することができます。www.は、「すべてのものと一致する」(または「始めるすべての文字列と一致する」という派手な方法です。

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.|)(.*)$
RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]
.

次に、httpsにある要求を処理するための2番目のルールが必要です。

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
.

他のヒント

この単一規則は、メインドメインとサブドメインとサブドメインを処理する必要があります。

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
.

DocumentRoot/.htaccess

の最初のルールとして配置されていることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top