かなりBasicな話なのですけど、設定ミスでアクセス出来ない事例が生じてたのでメモとして。
Apacheの設定で「wwwあり」と「wwwなし」を統一するには、VirtualHostを使うと楽です。
「wwwあり」→「wwwなし」
ServerName www.example.com
Redirect permanent / http://example.com/
「wwwなし」→「wwwあり」
ServerName example.com
Redirect permanent / http://www.example.com/
このサイトでは「wwwなし」に統一しているので上のパターンですね。
以下のような転送が行われています。
- https://www.nplll.com → https://nplll.com
- https://www.nplll.com/archives/category/mutter/ → https://nplll.com/archives/category/mutter/
- https://www.nplll.com/archives/2012/04/20120427.php → https://nplll.com/archives/2012/04/20120427.php
転送時のステータスは「301 Moved Permanently」です。
注意
この用途に使う場合、転送先のURLの最後には「/」が必要です。誤って以下のように設定していたため、間違って転送されていました。
誤った設定
ServerName www.nplll.com
Redirect permanent / https://nplll.com
誤った設定による転送結果
- https://www.nplll.com/archives/category/mutter/ → https://nplll.comarchives/category/mutter/
もちろん、404 Not Found。あれま。
正しい設定
ServerName www.nplll.com
Redirect permanent / https://nplll.com/