.htaccessでパラメータつきのURLをパラメータなしのURLにリダイレクトする方法 2011/8/28 18:49 最近よくGoogleアラートで見覚えのないページが通知されてきていました。 /index.php [L] # END WordPress, これはダウンロードしたWordPressに入っている.htaccessに最初から書かれている記述です。 .htaccess による転送設定(リダイレクト)を設定する方法に関してです。ついつい何となくでやりくりしてしまう.htaccess における、mod_rewrite を使ったリダイレクトの正しい記述方法を、最新の Apache によるマニュアルを元に、まとめ直しました。 【はじめに】.htaccess とリダイレクト .htaccess とは? */index.htmlRewriteRule ^(. 設定することで、FTPソフト上で.htaccessファイルを視認できるようになります。, 「環境設定」を開いたら「パネル」にある「隠しファイルを表示する」にチェックを入れる, これで.htaccessなど、初期設定では見えないファイルを見ることができます。 表示を確認出来たら必ず.htaccessファイルのバックアップをとっておきましょう。, デスクトップ左下のロゴ(ウィンドウズマーク)を右クリックして、 「エクスプローラー」をクリック, エクスプローラーを開いたら「表示」「オプション」をクリック、 「登録されている拡張子は表示しない」のチェックを外す, これでお使いのPCで拡張子を表示できるようになったはずです。 .htaccessは特殊ファイルで.(ドット)より手前がありません。 設定を変更しないとファイルそのものが非表示になってしまい、見えなくなってしまいます。, 反映する前にもう一度確認です! 前述しましたが、.htaccessはデフォルトでは表示されない可能性があります。 また、違う階層に複数設置することが可能なファイルです。, ・違う階層の.htaccessを上書きしてしまい、バックアップがない ・気づかずに上書きしてサイトが真っ白になった, たった2つの記述を書くだけで、簡単に無限ループができあがります。 サーバーに大きな負荷がかかりますし、当然ページを見ることはできません。 設定した際は必ず反映確認を行い、不備があった場合はすぐに元に戻しましょう。, # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . 最近よくGoogleアラートで見覚えのないページが通知されてきていました。具体的には、このブログのトップページのURLに更新日時がパラメータ(クエリ)としてくっついたものです。, こんなURLをこのブログからリンクさせた記憶はなく、アクセスログを調べてみると、とあるサイトからこのパラメータつきのリンクが貼られていることが分かりました。, ただのbotからのアクセスなら構わないのですが、サイトからリンクされているゆえにGooleがインデックスしてしまい、重複コンテンツとなってしまいちょっと困ります。, そこで.htaccessを使ってパラメータなしのURLにリダイレクトさせることにしました。, » .htaccess hack: remove query strings from URLs, 具体的には次のようにしました。この例では、パラメータが8桁の数字だった場合に限って、パラメータなしにリダイレクトさせています。, 4行目で「$1」の直後に「?」をつけるのがミソで、こうすると「?」だけ残るかと思いきや「?」も取り除かれたURLにリダイレクトされます。, もしもパラメータの形式によらずにパラメータなしのURLにリダイレクトさせたいなら3、4行目は次のように書きます。, ただしこの書き方では、ページングで「?page=」などのパラメータを利用していた場合などにアクセスできなくなってしまい、あまり推奨できません。, そういう場合には実際に利用しているパラメータだけ対象外とすることもでき、たとえば次のように書きます。, しかし、サイト内で利用されている全てのパラメータを把握するのはなかなか難しいので、なるべくリダイレクトの対象にしたいパラメータに特化して、RewriteCondを記述するほうが望ましいでしょう。, Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity や 電車遅延なう、梅酒.in、 #グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。, .htaccess hack: remove query strings from URLs, .htaccessでパラメータつきのURLをパラメータなしのURLにリダイレクトする方法. *)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301], SSL化(暗号化セキュリティ)では「http」から「https」にURLが変わります。 変更に伴い、リダイレクトが必要になります。 ※SSLに関しては別途記事で説明する予定です、作成したらリンクを貼りますね!, Googleは個人情報などを扱っていないサイトでも常時SSL化を推奨しています。 SEOの観点からみてもSSL化未対応のデメリットは大きいので、 未実装でしたら、すぐにでも対応することをお勧めします。, .htaccessを書く前に、「FTPソフト」と「PC環境」の環境設定を行います。 「.htaccessファイルを見えるようにする」ための作業になります。 ※環境次第では、PCやFTPソフト上で.htaccessが見えなくなっている可能性があります。, ここではWinSCPというソフトを例に説明します。 ある程度長くウェブ担当をされている方、「リダイレクト(転送)」が必要になった経験ってありませんか?転送は普通にHTMLを編集するだけではできなくて、悩まれる方も多いと思います。 目次.htaccessとは?.htacce […] htaccessのファイル名は「.htaccess」となります。.htaccessファイルをサーバにアップロードすることで機能します。 ちょっと触っただけでサイトが真っ白になったり、ページが表示されなくなったりする(可能性がある)要注意ファイルです。 *)$ https://www.■■.com/$1 [L,R=301], ※「index.htmlあり」のURLを「index.htmlなし」に転送する場合, RewriteEngine onRewriteCond %{THE_REQUEST} ^. *) https://■■.com/sub/$1 [R=301,L], 上記で転送を実行するには、事前に「404.html」というファイルを作成し、アップロードする必要があります。 ファイル名(404.html)は変更可能ですが、htaccessの記述と一致させてください。, RewriteEngine on RewriteCond %{ HTTPS} off RewriteRule ^(. .htaccess は合っていると思います。 mod_rewrite が使える環境なのか、.htaccess が使える環境なのか確認ください。 httpd.conf または httpd.conf から Include される設定ファイルに以下のような設定があればいいはずです。 ウェブサーバの設定をいじるにはターミナルでコマンドを入力しておこなうため、サーバ管理者以外の人にはハードルが高い作業になります。, htaccessファイルに命令文を書くと、サーバが命令文にしたがって処理してくれます。, htaccessファイルはSEOの作業でも使われるため、ホームページの制作や運営には必ず使われます。, htaccessのファイル名は「.htaccess」となります。.htaccessファイルをサーバにアップロードすることで機能します。, htaccessファイルは多くのウェブサーバで使えますが、Nginxを利用しているサーバではhtaccessファイルは利用できません。(ホスティングサービスによっては利用できるサーバもあります), htaccessの命令文を書くのが大変な時はツールを使う方法があります。 下記のツールは使いやすくお薦めです。, リダイレクトとは「Aページ」にアクセスしたユーザーを「Bページ」に飛ばすことです。, ホームページやページのURLが変更された時や、PCサイトとスマフォサイトを振り分ける時にリダイレクトが使われます。, URLを完全に統一することで、ドメインやページの評価が分散されなくなります。 アクセス解析も分かりやすくなります。, 昔はリダイレクトを使ってSEO効果を高めるグレーなテクニックが流行りましたが、今では使われることがありません。, リダイレクトで最も利用されるのが「301」と「302」です。 他にも303や307などもありますが、一般的に使われるのは301と302です。, ドメインの変更や、ページのURL変更などで使われるリダイレクトのテンプレート集です。, 古いドメインから新しいドメインへのリダイレクトさせます。 リダイレクトは301リダイレクトを利用します。, 「old.com」にはドメイン、「new.com」には新しいドメインを記述します。, 「domain.com/aa/page.html」を「domain.com/bb/page.html」に変更する場合です。, 「domain.com/old.html」を「domain.com/new.html」に変更する場合は下記になります。, RewriteEngine on RewriteRule https://www.old.com/old/old.html https://www.new.com/new/new.html [R=301,L], //下記の方法でも可能 RewirteEngine on Redirect permanent https://www.old.com/old/old.html https://www.new.com/new/new.html, SEOではURLのばらつきがマイナス要因となります。 アクセスデータの数値にも影響するため、リダイレクトでURLを統一させます。, ドメイン「https://aaa.com」にアクセスしても「https://www.aaa.com」にリダイレクトさせます。, wwwが有りでも無しでもアクセスできる場合、2つのURLが存在することになります。URLを統一することでSEOにもドメインの評価が上がります。, ドメインをwwwなしの「http://aaa.com」に統一させるためのリダイレクトになります。, 1と2・3は別のURLとして認識されます。 2と3は同一のURLとして認識されます。 このままではアクセスデータにばらつきが出てしまい、SEOとしてもマイナスとなるためリダイレクトで統一します。, robots.txtでクローラーをブロックして、新しいドメインにリダイレクトさせます。, PCサイトとスマートフォンサイトを別のURLで運営している場合に利用されるリダイレクトです。, サンプルではスマートフォンでアクセスすると「/sp/」ディレクトリにリダイレクトします。, RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android. プランニングから、実装、記事作成、UI/UX改善まで全ての施策が出来るSEO!, Yahoo特別認定パートナー、Google PPAファイナリスト、10年間の量と質で、CV改善!, マーケティング会社だから出来るサイト構築! UI/UXとSEOが基本実装! 10年間のノウハウで成果にコミット!, ICカードで業務時間を5分の1に!クラウド型勤怠管理、交通費精算、経費精算ツール ネクストICカード, SEO、主要Web広告から、サイト制作まで、Webマーケティングの全てを一社完結!. こちらを消すと、ページが表示されなくなるなどの不備が起こります。, 前述していますが、大切なことなのでもう一度言います。 ・違う階層の.htaccessを上書きしてしまい、バックアップがない ・気づかずに上書きしてサイトが真っ白になった みたいなことが起こらないように注意してください!, htaccessは便利ですが、とても怖いファイルです。 複数 書き換え 引き継がない 削除 リダイレクト パラメータ追加 パラメータ ハッシュ htaccess .htaccess PHP/Apache:.htaccessでルールを書き直す htaccess 301 redirect-クエリ文字列(QSA)を削除 (2) 私はいくつかのhtaccessリダイレクトに苦労してきました。 *Mobile|Windows.\ Phone) RewriteRule ^(. SEM JOURNAL > SEO > .htaccessのリダイレクト – 書き方・設置場所・設定方法を解説します, ある程度長くウェブ担当をされている方、「リダイレクト(転送)」が必要になった経験ってありませんか?転送は普通にHTMLを編集するだけではできなくて、悩まれる方も多いと思います。, サーバーを制御するファイルで、「ドット・エイチ・ティ・アクセス」と読みます。このファイルでは下記みたいなことができます。, このファイルはApacheなどのソフトウェアが使用されているサーバー環境なら動くはずです。設定しても動かなかったら、環境が原因の可能性がありますね。この内容が???な方は、サーバー周りを管理している方に、.htaccessが使用可能かどうか聞いてみてください!, メモ帳などのテキストエディタで文書を開いて保存しましょう。 この時点ではファイル名は何でも構いません。(仮に「htaccess.txt」とします) この「htaccess.txt」をサーバーにアップロードしてファイル名を「.htaccess」に変更すれば、記述した内容が反映されます。 ※すぐに転送の記述内容を確認したい方はこちらからご覧いただけます。, ※htaccessをアップロードする時の注意点→.htaccessをアップロードしてみよう※.htaccessの記述に関する注意点→.htaccessのよくある間違い, ファイルを設置したディレクトリから下の全てのファイルが影響範囲になります。複数設置することが可能で、複数ある場合は下の階層にあるものが優先されます。, 簡単に言うと、リダイレクト=転送です。よく見かける設定方法を、いくつか紹介します。, 具体的な設定方法の前に前提知識として「301リダイレクト」について説明します。301リダイレクトは最も一般的なWebページの転送方法で、「永続的な転送」を意味します。こちらの転送では、転送前のページが得ていた評価を転送後のページに引き継ぐことができます。, 他に比較的使用頻度が高い転送方法として302リダイレクトがあり、こちらは「一時的な転送」を意味します。, こちらの記事で紹介している転送は、全て「301リダイレクト」を使用した記述になります。, .htaccessファイルを使用したリダイレクトです。転送の設定を.htaccessファイルに記述するため、転送前のページが存在しなくてもユーザーを転送することが可能です。また、転送前のページのリンクによる評価を引き継ぐことが可能です。基本的にリダイレクトを行う場合は、こちらの.htaccessを使用する方法をオススメします。, 「meta refresh」という記述を使った転送設定です。 転送前のページのタグ内に設定します。 HTMLに直接記述すれば転送できるため、簡単に設定を行うことができます。 こちらの方法はHTMLに直接記述が必要なため、転送前のページを残しておく必要があります。 また、「meta refresh」による転送はリンクによる評価を引き継がないため、SEOの観点からオススメできません。, JavaScriptを使用した転送も、転送前のHTMLに直接記述します。サーバー環境によっては。.htaccessを使用できず、代替案としてJavaScriptを使用するケースがあります。meta refresh同様、転送前のページを残しておく必要があります。GoogleはJavascriptの内容を理解できるため、リンクの評価引継ぎは行われると考えられます。ですが、.htaccessでの転送が可能であれば、こちらの転送を使用する必要はありません。, ページを削除した場合やURLを変更した場合に設定します。そのページを訪れたユーザーを、目的のページに案内してあげる必要があります。, RewriteEngine onRewriteRule ^■■.html$ https://www.〇〇.com/▲▲.html [L,R=301], ページ単位ではなく、ディレクトリごと転送したい場合の設定になります。 部分リニューアルやCMS変更などで、ディレクトリ構造を変更した場合に役立ちます。, RewriteEngine onRewriteRule ^■■(. .htaccessは数々のウェブマスターを恐怖に陥れてきた「恐怖のファイル」なのです。, 他にも普通に生きてたら一生遭遇しないであろう文字列が多々ありますが、長くなるのでいつか機会があったら説明します。, また自分でやるのが難しいという場合は、実装も可能なSEO会社に依頼するという手段もありますね 。. *)$ $1 [R], nginxではhtaccessファイルが利用できません。nginxのconfigファイルを編集することになります。, htaccessファイルをnginx用に変換してくれるツールがあります。 ただ、完全には変換できない場合もあります。, 令和も使えるContact Form 7の設定とカスタマイズで最高のフォームにする方法, URLが変わっても、ブックマークしているユーザーからのアクセスや、リンク先からのアクセスも可能となる。. *)$ sp/$1 [R], RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android. All rights Reserved. *) https://■■.com/$1 [R=301,L], RewriteEngine OnRewriteCond %{HTTP_HOST} ^sub\.■■\.comRewriteRule ^(. Copyright © GEOCODE Co.,Ltd. パラメータ付URLを.htaccessでリダイレクトするメモ .htaccessでパラメータ付URLをリダイレクトするメモです。 こちらの説明は「mod_rewrite」を利用した物となります。 *)index.html$ https://■■.com/$1 [L,R=301], 「https://sub.■■.com/」のように区分けされたドメインがサブドメインになります。 こちらも転送可能ですので、記述を紹介します。, RewriteEngine on RewriteCond %{HTTP_HOST} ^sub\.■■\.com$ RewriteRule (. 書き換え 引継ぎ 削除 別ドメイン リダイレクト パラメータ ハッシュ rewriterule rewritecond remove query_string query mod_rewrite htaccess apache redirect httpd.conf jQuery Ajax呼び出しの後にリダイレクト要求を管理する方法 パーマリンクなどに使用されている重要な記述になります。 *) https://www.▲▲.com/$1 [R=301,L], 正規化は「Googleに評価してもらうURLを統一すること」です。SEOを意識した設定になりますので、ぜひ試してみてください!, RewriteEngine onRewriteCond %{ HTTP_HOST} ^■■\.comRewriteRule ^(.