質問: URLに拡張子(.html)を消した後、 更にhttp から https にリダイレクトをしたいです。 イメージとしては https://a.com/1/1 → 拡張子を消したまま表示させる https://a.com/1/1.html → そのまま表示させる http://a.com/1/1 → https://a.com/1/1 にリダイレクトさせる http://a.com/1/1.html → https://a.com/1/1.html にリダイレクトさせる DirectoryIndex index.html DirectorySlash Off RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ /$1.html RewriteCond %{HTTPS} off RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [NC,L] 上記のように記載すると、 http://a.com/1/1の場合、404エラーになってしまいます。 他の3つパターンは期待通りに動きます。 https://a.com/1/1 → 拡張子を消したまま表示させる https://a.com/1/1.html → そのまま表示させる http://a.com/1/1.html → https://a.com/1/1.html にリダイレクトさせる よろしくお願いします。
回答: 確認してませんが、これでどうでしょうか? ``` RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [NC,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ /$1.html ``` 質問とは別の話ですが、`RewriteRule ^.*$ https://~~`には、`R=301`を付けてPermanent Redirectにしたほうが良いと思います。