正規表現を使った.htaccessのリダイレクト方法

このQ&Aのポイント
  • 正規表現を使用して.htaccessファイルでリダイレクトを設定する方法について解説します。
  • 具体的には、「http://samplesite.jp/detail.php?no=1」などのURLを「http://samplesite.jp/1」のような短縮URLに変換する方法を紹介します。
  • 正しい.htaccessの記述方法を使えば、リダイレクトを実現することができます。
回答を見る
  • ベストアンサー

正規表現を使った.htaccessの記述に関して

http://samplesite.jp/detail.php?no=1」⇒「http://samplesite.jp/1」 「http://samplesite.jp/detail.php?no=2」⇒「http://samplesite.jp/2」 .htaccessで上記のようなリダイレクトをしたいです。 「http://samplesite.jp/detail.php?no=1」へアクセスした際に「http://samplesite.jp/1」のURLにリダイレクトし、その上で「http://samplesite.jp/detail.php?no=1」の内容を表示するにはどうすれば良いでしょうか?

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

ページ評価を引き継ぎたいなら、link rel="canonical" で、「正規のURL(検索エンジンにインデックスして欲しいURL)定義」を記述しておくとよいでしょう。 どちらの記述でのアクセスも有効にしておいて、ページ出力すべてにlinkタグ挿入して、 path_info形式を正規urlとして記述しておくと、大手検索サイトはおおむね対応してるようです。googleなどは、1週間から10日もあれば、検索結果に反映されるようです。 参考 http://web-tan.forum.impressrd.jp/e/2009/03/05/5112 http://blog.webcreativepark.net/tag-seo.html

参考URL:
http://web-tan.forum.impressrd.jp/e/2009/03/05/5112
25taku
質問者

お礼

シンプルで使いやすいです! ありがとうございました!

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

>「http://samplesite.jp/detail.php?no=1」へアクセスした際に「http://samplesite.jp/1」のURLにリダイレクトし、その上で「http://samplesite.jp/detail.php?no=1」の内容を表示するにはどうすれば良いでしょうか? この文章が意味不明になってしまっています。 http://samplesite.jp/detail.php?no=1 にアクセスしたときに、 ・http://samplesite.jp/1 にリダイレクトする ・detail.php を起動して、パラメーターで no=1 を与える これは両立しません。 もしかして、「http://samplesite.jp/1 にアクセスしたときに、detail.php を起動して、パラメーターで no=1 を与える」 ですか?それだとよくありがちな質問ですが。

25taku
質問者

補足

うまく説明できずに申し訳ありません。 やりたいこととしては、「detail.phpのページ評価を落とさない形で静的なURLに変更する」ことです。「http://samplesite.jp/1 にアクセスしたときに、detail.php を起動して、パラメーターで no=1 を与える」という方法を取ってしまうと、ページの評価が引き継がれないのではと懸念しております。そんなことはないのでしょうか?

関連するQ&A

  • htaccessの正規表現でのリダイレクト記述方法

    htaccessの正規表現でのリダイレクト記述方法についてお尋ねします。 http://xxx.com/123456 とアクセスがあった時に http://xxx.com/no/123456.html にリダイレクトする書き方を教えてください。 なお、 1)xxx.jp/にはindex.htmlやその他のファイルが存在する予定です。 2)「123456」に当たる部分は必ず数字6ケタです。

  • .htaccessの記述について教えていただきたいです。

    .htaccessの記述について教えていただきたいです。 例えば http://www.hogehoge.com/index.php?language=japanese というURLにアクセスした場合に http://www.hogehoge.com/index.html にリダイレクトされるようにしたい場合、 どのように記述をすればうまくいくのでしょうか? ネットで色々と調べてはいるのですが、 なかなか成功する方法が見つからずに困っています。 よろしくお願いいたします。

  • .htaccessリダイレクト

    .htaccessリダイレクト 別ドメインにリダイレクトさせるための方法が分からないので、質問させてください。 現在http://www.aaaaa.jp/aaa/bld_list.phpにアクセスしたときに http://www.bbbbb.jp/bbbにリダイレクトさせようとしています。 googleで「別ドメイン .htaccess リダイレクト」など色々検索してみたのですが、 なかなか出て来なく、困っています。 どなたかアドバイスいただけないでしょうか?

  • htaccessでURLの書き換えをする際の書き方

    htaccessでURLの書き換えをする際の書き方を教えてください <元のURL> http://ドメイン/あいうえ <書き換え・リダイレクト先のURL> http://ドメイン/test.php?url=あいうえ 以上のように元のURLの「/」以降の文字列をPHPのパラメータとして、リダイレクトさせる方法を教えてください。

    • 締切済み
    • PHP
  • htaccessでURLを階層式の短縮URLに

    htaccessに関する質問です。 GETパラメータのついたURLを、 ディレクトリ式の短縮URLにしたいです。 例) http://〇〇〇.jp/detail.php?no=123456  ↓以下のように http://〇〇〇.jp/123456/ htaccessにどのように記述すればよいでしょうか。 簡単な説明もいただけるとうれしいです。 ご指導ください。 よろしくお願いします。

  • htaccessで指定したURLが含まれる場合

    htaccessの設定でリダイレクト処理をしたいと思っています。 したい内容は 「指定したURLが含まれる場合、リダイレクト」 です。 現在、phpで下記の通り引数を使用してサイトを表示しています。 http://www.sample.jp/test.php?id=1&page=1 http://www.sample.jp/test.php?id=1&page=2 http://www.sample.jp/test.php?id=1&page=3 http://www.sample.jp/test.php?id=2&page=1 http://www.sample.jp/test.php?id=2&page=2 http://www.sample.jp/test.php?id=2&page=3 上記、URLで 引数id=1のページにアクセスがあった場合、新ドメインの http://www.ex.jp/test_page/ へリダイレクトし、 引数id=2のページにアクセスがあった場合、新ドメインの http://www.ex.jp/sample_page/ にリダイレクトしたいと思っています。 現状は1つずつ RedirectPermanent /test.php?id=1&page=1 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=2 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=3 http://www.ex.jp/test_page/ としていますが、これをid=1のページを全て一括で http://www.ex.jp/test_page/ へリダイレクトする書き方はないのでしょうか。

  • cookieとhtaccessをつかったページ移行

    cookieとhtaccessをつかったページ移行を考えております。 内容ですが、 http://www.abc.oo/abc/aaa.php?user_id=5 へアクセスした際に htaccessで  http://www.abc.oo/cookie.php へリダイレクトさせ、 クッキーが有効な場合は http://www.abc.oo/abc/aaa.php?user_id=5へリダイレクト クッキーが無効の場合は http://www.abc.oo/555.html というURLを表示させ、 555.html ファイル内に 進むボタンをつけ http://www.abc.oo/abc/aaa.php?user_id=5へのリンクをつけたいと 思っております。 cookie.phpでクッキーを取得することは出来たのですが、 どのようにして、?user_id=5 の部分のURLを持ちまわるのかが 分かりません。 どなたかお分かりになられる方、ご教授お願いできませんでしょうか? よろしくお願いいたします。

  • htaccessでURLを変えたい

    htaccessでURLを変えたい http://www.sample.jp/test/php/ex.php というURLをhtaccessで http://www.sample.jp/ex.php に変換したい場合、どのようにすればよいのでしょうか。 いろいろ調べたのですが、動的URLを静的URLに変換等はできたのですが、 上記のように変更するやりかたはわかりませんでした。 上記URLの変換は無理なのでしょうか。

  • .htaccessの正規表現の書き方

    あるサイトでhtmlで書かれていたものをphpを利用するため●●.phpに変更しました。 .htaccessで301リダイレクトの設定をしようと考えているのですが、正規表現の仕方が分かりません。 下記の場合どのような書き方をすればよろしいでしょうか? リダイレクト文含め解説も入れていただけたら幸いです。 よろしくお願いします。 http://www.zzz.com/okinawa/test1.html → http://www.zzz.com/okinawa/test1.php http://www.zzz.com/okinawa/testdetail1.html → http://www.zzz.com/okinawa/test1.php http://www.zzz.com/kagoshima/test1.html → http://www.zzz.com/okinawa/test1.php http://www.zzz.com/kagoshima/testdetail1.html → http://www.zzz.com/okinawa/test1.php http://www.zzz.com/●●/▲1.html ※●●は都道府県毎のディレクトリで47あります。 ※▲は「test」「testdetail」の2種類のコンテンツがあります。 ※1の数字は連番で仮に1~100の100ファイルあります。

  • htaccess rewrite 無限ループ

    すでにあるサイトにhtaccessを設置して、 rewriteで日本語のファイル名でアクセスさせる方法を模索しています。 例↓ ・「http://www.example.jp/index.php」でアクセスされたら「http://www.example.jp/インデックス」 にリダイレクト。 ・「http://www.example.jp/インデックス」でアクセスされたら「index.php」 を表示させる。 htaccessの例↓ Options +FollowSymLinks RewriteEngine on RewriteRule ^index\.php$ /インデックス [R=301,L] RewriteRule ^インデックス$ index.php [L] 上記の設定だと無限ループになってしまいます。 index.phpでアクセスされたら404を返す方法も考えましたが・・・もっといい方法はないでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう