indexgo
login

スターサーバーでDocumentRootを変更する.htaccess

さくらレンタルサーバーなどのではDocumentRootの指定もできるんですが、スターサーバーは向こうの指定したディレクトリがドキュメントルートになってしまうので、好みのディレクトリに変更する方法をまとめました。SSL証明書の更新やwwwあり・なしの統一にも対応しています。

作成者:Ssさん 公開日:2018年9月12日 13時27分 更新日:2018年9月12日 14時03分

rootの.htaccess

wwwディレクトリをhogehoge.comのドキュメントルートにする場合は、ドキュメントルート直下の.htaccessに下記のように記述します。

注意点としては、「RewriteRule ^.well-known/ - [L,NC]」の部分がないと、Let's EcncryptのSSL証明書更新に失敗するので、ここをしっかり記述しておきます。

また、wwwのあり・なしの統一もここでやっておきます。

RewriteEngine on
RewriteRule ^.well-known/ - [L,NC]

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

RewriteBase /
RewriteRule ^$ www/ [L]
RewriteRule (.+)$ www/$1 [L]

各サブドメインの.htaccess (静的ファイルの場合)

静的ファイルを置く場合など、サブドメインでリライトが特に必要がないは下記のようにリライトをオフにします。

RewriteEngine off

各サブドメインの.htaccess (WordPressなどのリライト必須の場合)

WordPressやLaravelなどのリライトが必要なWEBアプリの場合、www/.htaccessに下記のように記述します。

RewriteEngine on
RewriteBase /

各サブドメインの中でさらにルートを変更する場合の.htaccess (publicディレクトリなど)

WordPressやLaravelなどで公開ディレクトリとアプリ本体を分けたい時は、www/.htaccessの中身を下記のようにします。

RewriteBase /
RewriteRule ^$ public/ [L]
RewriteRule (.+)$ public/$1 [L]

正しく書いてるのにSSL証明書の更新に失敗する時は時間をおく

稀に、.htaccessを正しく書いているのにSSL証明書の更新に失敗する時がありますが、その時は少し時間を置いてから再度実行する成功したりします。

きちんと設定ができればセキュリティも安心!

ドキュメントルートに色々プログラム本体や重要な設定ファイルがあるのはよろしくないので、きちんと公開ディレクトリを分けることでセキュリティも高められます。

SSLの更新部分も一度書いてしまえば、スターサーバーが勝手に更新してくれるので、メンテナンスコストも下がってなお良しですね!

レンタルサーバーの【スターサーバー】は、無料の独自SSL機能を備えたオールSSD採用のクラウド型レンタルサーバーです。低価格プランから大容量プランまで、ニーズに合わせた多彩なプランを提供しています。