やりたいこと。
- https://site/test を https://site/test.html にリダイレクトしたい。
- 加えて https://site/test/ も https://site/test.html にリダイレクトしたい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# /test/ -> /test RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/+$ $1 [R=301,L] # /test -> /test.html RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html [R=301,L] # not found -> index.html RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] # add www RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] # redirect to https RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
参考サイト
.htaccess の書き方(リダイレクト編) – Qiita
https://qiita.com/shotets/items/1f8f308e008dcb96bf43
Apacheのmod_rewriteモジュールの使い方を徹底的に解説 | OXY NOTES
http://oxynotes.com/?p=7392
静的なHTMLサイトで拡張子「.htmlあり」でも「なし」でもアクセスできる方法 | [M]まったり・こんふぃでんしゃる【Confidential】
http://deltablog01.com/archives/1140
apache – mod_rewrite:末尾のスラッシュを削除する(1つだけ!) .htaccess mod-rewrite | CODE Q&A [日本語]
https://code.i-harness.com/ja/q/2ed0bb