※当サイトにはプロモーションが含まれています。
HTTPのアクセスを、HTTPSにしたい場合や、メンテナンスなどで、一時的に別ページに飛ばしたい場合など、色々な場面で、.htacessを使ってリダイレクトをする事があると思います。
今回は、自分が今まで使用したリダイレクトのコードを備忘録として・・・。
htacessを使ったリダイレクト例
htacessを使ったリダイレクト例6つです。
①非WWWからWWWへのリダイレクト
ドメインを、wwwで統一するために、wwwがないURLから、wwwを含むURLへリダイレクトします。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
②WWWから非WWWへのリダイレクト
wwwを含むURLから含まないURLへリダイレクトします。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
③HTTPからHTTPSへのリダイレクト
セキュリティを強化するために、HTTPからHTTPSへのリダイレクトをおこないます。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
④古いページから新しいページへのリダイレクト
ウェブサイトの再構築などでURLが変更された場合、古いURLから新しいURLへリダイレクトします。
RewriteEngine On
RewriteRule ^old-page.html$ http://example.com/new-page.html [R=301,L]
⑤メンテナンスページへの一時的リダイレクト
ウェブサイトのメンテナンス中にすべての訪問者をメンテナンスページにリダイレクトします。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/maintenance.html$
RewriteRule ^(.*)$ /maintenance.html [R=307,L]
⑥URLのクリーンアップ
不要なパラメータを除去します。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=10$
RewriteRule ^index\.php$ /new-page? [R=301,L]
上記の例では、index.php?id=10 を new-page にリダイレクトし、クエリストリングを削除します。
「.htaccess」ファイルを使用する際の注意点
Nginx(エンジンエックス)を使用している場合、.htaccessファイルは使用できないので注意が必要。
なお、Nginxを使用している代表的なレンタルサーバーは、XServer(エックスサーバー)です。
ただし、XServerでは、ApacheとNginxを共存させることで、.htaccessが利用できるようです。
以上です…
備忘録なので、「.htaccess」ファイルの設置の仕方とかはないです。スミマセン。
いずれ、記事を更新もしくは追加したいと思います。