AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

.htaccessを使った301リダイレクトに関するメモ

最近サーバー開発をやるようになってから、.htaccessを使ってリダイレクトさせる方法を学んだので、今後のためにメモとして残しておきたいと思います。

.htaccessについて

f:id:no-work-no-life-4081:20190320091228p:plain
まず「.htaccess」はどんなものかというと、Webサーバーをディレクトリ単位で制御できるファイルのことで、アクセスさせたくないURLにアクセスされた場合にリダイレクト処理を行ったり、ディレクトリ単位でBasic認証をかけたりできます。

.htaccess」については以下あたりが参考になりました↓
www.seohacks.net
qiita.com


.htaccessの具体的な使い方としては以下です。


.htaccessでhttp→httpsにリダイレクトさせる

httpsのサイトにhttpでリクエストがきた場合に、httpsにリダイレクトさせたい時は.htaccessは以下のような感じになります。

# http→httpsにリダイレクト
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://abc.com/$1 [R=301,L]


.htaccessでwwwありのリクエスト→wwwなしにリダイレクトさせる

http://abc.comに来て欲しいのに、http://www.abc.comでリクエストがきてしまった場合、http://abc.comにリダイレクトさせたい時はこんな感じ↓

# wwwなしに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.abc\.com
RewriteRule (.*) http://abc.com/$1 [R=301,L]

SEO的にはURLは統一した方がいいらしいので、wwwありかwwwなしかで統一した方が良さそうです。



.htaccessでindex.htmlを表示させないようにする

http//abc.com/index.htmlにアクセスがあった場合にindex.htmlを表示させたくない時(http://abc.com/にアクセスさせたい)はこんな感じ↓

# index.htmlにアクセスした場合にindexを表示しない
#RewriteEngine on
#RewriteCond %{THE_REQUEST} ^.*/index.html
#RewriteRule ^(.*)/index.html$ http://abc.com/$1 [L,R=301] 

.htaccessで特定のページからリダイレクトさせる

特定のページにアクセスがあった場合にリダイレクトさせたい場合は以下のような感じになります↓

# 特定のページのリダイレクト
#RewriteEngine on
#RewriteRule ^tools/test.html$ #http://abc.com/tools/test2.html [L,R=301] 

上記の場合はtools/test.htmlにアクセスがあった場合、http://abc.com/tools/test2.htmlにリダイレクトさせてます。
ディレクトリ構造を変えたり、ファイル名を変更した場合などに使えそうです。