前提・実現したいこと
現在レンタルサーバーを契約してサブドメインを使用してサイトを作成しているのですが、Apache・.htaccessの設定の知見がないので、ご教授いただければ幸いです。
宜しくお願いいたします。
下記が実現したいことの一覧になります。
- httpsに統一
- wwwなしに統一
- index.html もしくは index.php の拡張子を省略
- ルートへのアクセスを禁止しサブドメインにリダイレクト
-「https://example.co.jp」→「https://subdomain.example.co.jp」 - パスによるアクセスを禁止しサブドメインにリダイレクト
-「https://example.co.jp/subdomain」→「https://subdomain.example.co.jp」
下記が現在の設定になります。
/public/.htaccess
Redirect /subdomain "https://subdomain.example.co.jp/" <IfModule mod_rewrite.c> RewriteEngine On # SSL RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # www RewriteCond %{HTTP_HOST} ^www.example.co.jp [NC] RewriteRule ^(.*) https://example.co.jp/$1 [R=301,L] # index.(html|php) RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>
/public/subdomain/.htaccess
# Allow access by subdomain only SetEnvIf Host "^subdomain.example.co.jp$" host order deny,allow deny from all allow from env=host <IfModule mod_rewrite.c> RewriteEngine On # SSL RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # www RewriteCond %{HTTP_HOST} ^www.subdomain.example.co.jp [NC] RewriteRule ^(.*) https://subdomain.example.co.jp/$1 [R=301,L] # index.(html|php) RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>
参考
https://qiita.com/haguhoms/items/86b279a196a7954582e6
https://on-ze.com/archives/2232
https://server-hikaku-guide.com/xserver-subdomain/
あなたの回答
tips
プレビュー