1

現在、サーバーはhttp://www.example.com/index.phpへのHTTPリクエストをHTTPSにリダイレクトします。

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} index.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ただし、問題は、 http://www.example.comにリクエストが送信されたときに、リダイレクトが行われないことです。

{REQUEST_URI}が空の場合に、サーバーをHTTPSにリダイレクトするにはどうすればよいですか。(私はそれが空だと思います)

編集:
akostadinovの回答の後、これを含めるように.htaccessを変更し、書き換えが機能しました。後で誰かが同じ問題を抱えている場合に備えて、ここに投稿します!

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
4

1 に答える 1

0

リクエストは/です。以下の出力を参照してくださいcurl -v(切り捨て)。ところで、特定の条件と実際に一致させる必要がない場合は、URI条件を省略できます。

$ curl -v example.com
* About to connect() to example.com port 80 (#0)
*   Trying 192.0.43.10...
* connected
* Connected to example.com (192.0.43.10) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: example.com
> Accept: */*
...
于 2013-02-19T09:36:52.157 に答える