1

現在、 http://domain.comhttps://www.domain.comに誘導するために機能するいくつかのルールがありますが、 http://www.domainでは機能しません (一致していないと思いますか?) 。 com 、 https://www.domain.comにリダイレクトする必要があります。誰かがこれを行うために以下を変更できますか? かなりの数のことを試しましたが、うまくいきませんでした.htaccess 書き換えルールを使用するのはこれが初めてです。

TL;DR、WWW と HTTPS の両方にリダイレクトする必要があります

RewriteEngine On

RewriteRule .? - [E=PROTO:http]

RewriteCond %{HTTPS} =on
RewriteRule .? - [E=PROTO:https]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$  %{ENV:PROTO}://www.%{HTTP_HOST}/$1 [R=301,L]

編集:次のコードを見つけました。これは多少機能します-両方をhttps://www.domain.comにリダイレクトしますが、「リダイレクトが多すぎます」というエラーが発生します。

RewriteEngine On
RewriteBase / 
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} (www\.)?(.+)$ [NC]
RewriteRule ^ https://www\.%2%{REQUEST_URI} [L,R=301] 
4

2 に答える 2

2

このようなことを試しましたか?

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301] 

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

サーバーの VirtualHost でこれを変更することをお勧めします。

NameVirtualHost *:80
 <VirtualHost *:80>
 ServerName www.domain.com
 ServerAlias domain.com
 Redirect permanent / https://www.domain.com/
 </VirtualHost>

 <VirtualHost _default_:443>
 ServerName www.domain.com
 DocumentRoot /www/
 SSLEngine On
 # etc...
</VirtualHost>
于 2013-04-28T10:12:40.957 に答える