

301リダイレクトのコードの書き方を調べていますが、不明な点があります。  
サンプルは、<http://example.com>を<http://www.example.com>にリダイレクトするということで

[code]

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example\.com$
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
    
[/code]

となっています。

私のＵＲＬは、[http://st〇〇.sakura.ne.jp](http://st%E3%80%87%E3%80%87.sakura.ne.jp)と[http://www.st〇〇.sakura.ne.jp](http://www.st%E3%80%87%E3%80%87.sakura.ne.jp)なのですが、www無しを有にリダイレクト設定する場合、どのように記載すればよいかよく分かりません。  
アドバイスよろしくお願いいたします。


CC BY-SA 4.0
2018-12-25T14:42:10.730
51511
2018-12-26T06:38:08.187
2018-12-26T00:20:04.037
2238
31588
question
.htaccess
301リダイレクトのコードの書き方について


`RewriteCond`の条件は正規表現になります。  
`RewriteCond 【条件比較対象】 【条件式】`  
`%{HTTP_HOST}`は、ホスト名を取得します。  
今回の場合は`st〇〇.sakura.ne.jp`を取得します。

`^`は先頭を意味し、`$`は文末を意味します。  
完全一致で比較する場合、全文を比較する必要はあるので先頭から文末まで文字列を指定します。

正規表現上で使用する文字についてはエスケープが必要です。  
`.`は正規表現上で任意の1文字を意味する文字なので、そのままでも動くと言えば動きますが、  
`st〇〇-sakura-ne-jp`もヒットしてしまいます。  
なので`\.`にし、エスケープします。

纏めると以下のような記述になります。

[code]

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^st〇〇\.sakura\.ne\.jp$
    RewriteRule ^(.*)$ http://www.st〇〇.sakura.ne.jp/$1 [R=301,L]
    
[/code]


CC BY-SA 4.0
2018-12-26T06:38:08.187
51527
2018-12-26T06:38:08.187
31539
51511
answer