• このエントリーをはてなブックマークに追加

RewriteRule www有りに変更

RewriteRule www有りに統一

wwwありのURLに統一するRewriteルール。www無しのアクセスが有ったときは、リクエストされた値を引き継ぎながら、ドメイン部分だけをwww有りに変えておいて、それ以降は同じURLとしておけば、問題なく統一された状態で表示できる。

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

RewriteRule www無しに変更

wwwありのURLを無しに統一する方法。wwwありだとわかりやすいが、無い方だとURLが短くなって、限られた範囲内にURLを記述するときなどに重宝するサイトとなる。

.htaccessでwwwをなしに統一する

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

RewriteRuleでindexを「/」に省略

index.html、index.htm、index.phpの3種類のindexファイルにアクセス(そのURLをリクエスト)してきた時に、/に書き換えるRewriteルール。

.htaccessでindexの拡張子を省略する

RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.(html|htm|php)
RewriteRule ^(.*)index.(html|htm|php)$ https://www.example.com/$1 [R=301,L]

古いディレクトリから新しいディレクトリにRewrite

新しいドメインに移設した際、違うドメインで同じURLにRewriteするサンプルコードスニペット。

リクエストされたURLやパラメータを引き継がずにリダイレクトなどを行う場合はシンプルですぐ済ませられる。

.htaccessで古いディレクトリにアクセスしてきた時は新しいディレクトリに引き継いで、アクセスできるようにする

RewriteEngine On
RewriteRule ^old_dir(.*)$ /new_dir$1 [R=301,L]

特定のディレクトリ内のリクエストのみRewriteして、引き継ぐ

RewriteEngine On
RewriteRule ^/old_dir/(.*)$ /new_dir/$1 [R=301,L]

特定のファイルのみRewrite

.htaccessで様々なファイルを個々に違ったファイル名に変更する

リダイレクトでも可能だが、Rewriteでも同じように新しい飛び先に設定することが可能なサンプル。

# 特定ファイルのみ転送する HTML→PHP
RewriteEngine On
RewriteRule ^company.html$ /company.php [R=301,L]
RewriteRule ^location.html$ /location.php [R=301,L]
RewriteRule ^village.html$ /village.php [R=301,L]
RewriteRule ^city.html$ /city.php [R=301,L]
RewriteRule ^room.html$ /room.php [R=301,L]
RewriteRule ^index.html$ / [R=301,L]

.htaccessで指定した1ファイルのみファイル名を違うものに変更する

1ファイルだけ。

# 特定ファイルのみ転送する HTML→PHP
RewriteEngine On
RewriteRule ^company.html$ /company.php [R=301,L]

指定ディレクトリに集約する

指定のディレクトリにリクエストされた値を引き継ぎながらまとめて、サブディレクトリ配下に再配置する。

.htaccessで、指定ディレクトリに引っ越ししてもアクセスできるようにする

RewriteEngine on
RewriteBase /
RewriteRule ^(.*) https://example.com/ディレクトリ名/$1 [R=301,L]

現在のサイトでメンテナンスページを表示Rewrite・転送

現在のサイトは一旦DNS切り買え中に店舗などを閉店しておいて、DNSが浸透するまで、いったんメンテナンスの特別なページにRewriteしておく。新しいサイトも同じく、アクセスしたときにRewriteして、うまく表示できるように同じURLで準備しておく。

どのアクセスも、Rewriteしてpage/maintenanceフォルダの内容が表示されるようにする。

新しいサーバーにDNSを切り替える前に、
一旦現在の旧サーバーをメンテナンスページにRerite(書き換え・転送)して、
特定のページのみ表示したい。
また、新しいサーバーでも同じURLのメンテナンスページを準備しておくケース。

たとえば、以下のようなメンテナンスページを準備。

https://example.com/page/maintenance

.htaccessでRewriteして、メンテナンスページを表示する

RewriteEngine on
RewriteCond %{REQUEST_URI} !(page/maintenance)
RewriteRule ^(.*)$ /page/maintenance [R,L]

以下のURL

旧サーバー・新サーバーともに同じURLで準備しておく。
新しいサーバーもしくは、旧サーバーのURL規則に沿って作成する。どちらもかなわない場合はトップページなどで対処する。