サブドメイン用 「.htaccess」 with クリーンURL

クリーンURLの設定をしたいのに、設定画面でエラーが出て、クリーンURLを設定できない(設定画面で「有効」がグレーアウトしていて選択できない)ことがあります。

その対処方です。

セットアップ当初、クリーンURLが使えず、設定画面(「管理セクション > サイトの環境設定 > クリーンURL」)に、以下のようなエラーが出ていて、クリーンURLを使えずにいました。

Your system configuration does not currently support this feature.
The handbook page on Clean URLs has additional troubleshooting information.

厳密な原因が書かれていないのですが、自分の場合、原因は、

  • サブドメインを使っていること
  • なおかつ「.htaccess」に、「RewriteBase」を規定していなかったこと

が原因でした。

「.htaccess」、103行目あたり、

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

と、

RewriteBase /

を追加することで、
無事、クリーンURLを使うことが出来ました。