質問: 301リダイレクトのコードの書き方を調べていますが、不明な点があります。 サンプルは、をにリダイレクトするということで ``` RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] ``` となっています。 私のURLは、http://st〇〇.sakura.ne.jpとhttp://www.st〇〇.sakura.ne.jpなのですが、www無しを有にリダイレクト設定する場合、どのように記載すればよいかよく分かりません。 アドバイスよろしくお願いいたします。
回答: `RewriteCond`の条件は正規表現になります。 `RewriteCond 【条件比較対象】 【条件式】` `%{HTTP_HOST}`は、ホスト名を取得します。 今回の場合は`st〇〇.sakura.ne.jp`を取得します。 `^`は先頭を意味し、`$`は文末を意味します。 完全一致で比較する場合、全文を比較する必要はあるので先頭から文末まで文字列を指定します。 正規表現上で使用する文字についてはエスケープが必要です。 `.`は正規表現上で任意の1文字を意味する文字なので、そのままでも動くと言えば動きますが、 `st〇〇-sakura-ne-jp`もヒットしてしまいます。 なので`\.`にし、エスケープします。 纏めると以下のような記述になります。 ``` RewriteEngine on RewriteCond %{HTTP_HOST} ^st〇〇\.sakura\.ne\.jp$ RewriteRule ^(.*)$ http://www.st〇〇.sakura.ne.jp/$1 [R=301,L] ```