[Sy] Debian/Apacheのconfファイルで301リダイレクトをさせる方法
Debian/Apacheのconfファイルで 301リダイレクト をさせる方法です。旧サイトがApacheだったので今回のリニューアルの際に行ってます。
サイトのリニューアル時とかに使う
4月1日にサイトをリニューアルしました が、旧サイトがApacheのVirtualHostで動いてたので、confファイルをいじって301リダイレクトをさせるようにしています。
301という数字について
HTTPではサーバからHTMLのテキスト情報だけでなく、ステータスコード(or レスポンスコード)というものが送られてきます。この「301」という数字もその一つで、「恒久的な移動」を意味します。なので、このコードを受け取ったブラウザ側は、「あ、ページが新しいURLに移動したんだ」と知ることができます。(自動でリダイレクトされます)また、正常時は「200」、何も見つからなかった場合は「404」などが返ってきます。
あとURLもwwwを消したりHTTPSに対応したりしたので、以下のようにリダイレクトさせたいです。
(旧) http://www.utano.jp/entry/xxxx/xx/xxxxxxx
↓
(新) https://utano.jp/entry/xxxx/xx/xxxxxx
設定方法
今回のぼくの場合は、Debianなので修正するファイルは/etc/apache2/sites-available/www
というwww.utano.jp
のVirtualHostの設定をしているファイルになります。
CentOSの場合は、/etc/httpd/conf.d/
配下あたりとかにあると思います。(設定者によるので、だいたいですが、とにかくリダイレクトさせたいサイトの設定を探してください)
で、設定する内容ですが、まず元のファイルがこんな感じ。
<VirtualHost *:80>
ServerName www.utano.jp
DocumentRoot /var/www/www/public/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/www/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride ALL
Order allow,deny
allow from all
setEnv FUEL_ENV development
</Directory>
・
・
・
</VirtualHost>
これを、ServerName
以外ガッと消して、1行加えます。
<VirtualHost *:80>
ServerName www.utano.jp
Redirect permanent / https://utano.jp/ ← 追加
</VirtualHost>
Redirect permanent
が301リダイレクトにしてくれます。(Redirect temp
とすると302(一時的な移動)となるようです)
その後の/
は、http://www.utano.jp/
とうURLに対応しているので、
「http://www.utano.jp/
以下のURLをすべてhttps://utano.jp/
以下の対応するURLに301リダイレクトしてね。」
という設定になります。
これで、Apacheのconf再読み込みをして完了です。
$ sudo service apache2 reload
Reloading web server config: apache2.
CentOS6以下ならこうですね。
$ sudo service httpd reload
ついでにCentOS7だとたぶん
$ sudo systemctl reload httpd
ですかね?(試してない)
参考URL
この記事を参考にさせていただきました。ありがとうございます!
⇒ apache設定ファイルでの301リダイレクトの設定方法 | AC-5
こちらはCentOSっぽいですね。CentOSの方は見てみるとより分かるかと思います。