htaccessでid=1のページを一括でリダイレクトする方法はある?

このQ&Aのポイント
  • htaccessの設定でid=1のページを一括で別のドメインへリダイレクトしたい。
  • 現在は1つずつRedirectPermanentで設定しているが、一括設定する方法はあるのか。
  • id=1のページにアクセスがあった場合、http://www.ex.jp/test_page/へリダイレクトしたい。
回答を見る
  • ベストアンサー

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/ へリダイレクトする書き方はないのでしょうか。

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

  • ベストアンサー
回答No.1

RedirectMatch (正規表現)を使えばいいのでは? (例) RedirectMatch 301 ^/test\.php\?id=1 http://www.ex.jp/test_page/ RedirectMatch 301 ^/test\.php\?id=2 http://www.ex.jp/sample_page/ 備考 ステータスコードの設定を省略した場合 302 になります。ステータスコード 301 を返す場合はステータスコードを明示します。 永久的 RedirectPermanent --> 301 一時的 RedirectTemp --> 302 URL に正規表現で使われる特殊記号文字 . ? ^ $ ( ) [ ] { } が使われている場合はエスケープするのをお忘れ無く。 なお、 Apache の正規表現は Perl 互換正規表現(Perl Compatible Regular Expressions)です。 詳細は下のRedirectMatch ディレクティブを参照してください。 http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html

hukazuo
質問者

お礼

ありがとうございます! 無事、解決出来ました。

関連するQ&A

  • htaccessでRewiteRule

    ホームページ移転に伴い、htaccessにて301リダイレクト処理をしようと思い、下記の通り記述しました。 RewriteEngine On RewriteRule ^test/sample.php?flg=1&page=ex http://www.sample.jp/ex/ [R=301] や RewriteRule ^test/sample.php?flg=1&page=(.*) http://www.sample.jp/$1/ [R=301] としても、転送されません。 下記のようにするとsample.phpにアクセスした場合転送されます。 RewriteRule ^test/sample.php http://www.sample.jp/ex/ [R=301] 引数で転送先を変えたいのですが、どのようにしたらいいでしょうか。

  • htaccessでURLを変えたい

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

  • .htaccess mod_rewriteのルール

    アクセスしたフォルダのURIを引数にして特定のURLに転送するには どのような記述にすればよろしいのでしょうか? http://xxx.jp/test/test.htm これにアクセスした際に http://xxx.jp/sample/script.php?id=/test/test.htm このような感じにしたいのです。 "/"はあってもなくてもいいのですが。 一応 RewriteRule ^(.*/)$ script/test.php?id=/$1 このようなルールをあるサイトから借りましてやってみたところ .htaccessをルートフォルダに入れたらうまくいきました しかしサブフォルダの場合だとうまくいきません。 これをサブフォルダに入れた場合でも対応できるようにするには どのようにすればよいのでしょうか? よろしくお願いします

  • .htaccessリダイレクト

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

  • .htaccessでサイトの引っ越し

    .htaccessでサイトの引っ越し サーバーとドメインの変更がり引っ越しをします。 調べてみたところ.htaccessでリダイレクトするべきとあったのですが書き方について質問です。 サイトのURLをhoge.co.jpからexsample.co.jpに変更します。 この場合の書き方ですが下記の一行でいいのでしょうか? RedirectMatch 301.* http://www.exsample.co.jp/ しかし上記の場合どんなURLであっても全てを新しいURLにリダイレクトしますよね? 階層やファイル名は全く同じになるので可能であれば実現したい事は・・・ ・旧ドメイン/aaa.htmlにアクセスがあれば新ドメイン/aaa.htmlにリダイレクト ・旧ドメイン/bbb.htmlにアクセスがあれば新ドメイン/bbb.htmlにリダイレクト ・旧ドメイン/ccc.htmlにアクセスがあれば新ドメイン/ccc.htmlにリダイレクト と全てをトップページにリダイレクトするよりはそれぞれのページにリダイレクトしてやる方が親切かと思ったのですがどのように書けばいいでしょうか?

    • ベストアンサー
    • HTML
  • htaccessのリダイレクト(php→html)

    .phpで運用していたウェブページの拡張子を、.htmlに変更したのですが、 .phpにアクセスがあった場合、.htmlにリダイレクトするように htaccessを設定したいと思っています。 htaccessに、 RedirectPermanent http://user-domain/hogehoge.php http://user-domain/hogehoge.html と書けばリダイレクトされるとは思うのですが、 ページ数が少し多いサイトですので、1ページ1ページ書かずにできる方法を ご存知の方がいれば、教えて頂けないかと思いこちらに投稿しました。 どなたかお知恵を貸していただけませんか?? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • htaccessでリダイレクト

    http://www.○○○/index.php?s=sample というアドレスを http://www.◆◆◆/ にリダイレクトしたいと思っています。 htaccessに下記のように記述しました。 RedirectPermanent /index.php?s=sample http://www.◆◆◆ が、リダイレクトしませんでした。 次に下記のように記述してみました。 RewriteEngine on RewriteRule ^([0-9A-Za-z_]+)/$ index.php?s=$1 [L] RedirectPermanent /sample/ http://www.◆◆◆ すると、 http://www.○○○/index.php?s=sample にアクセスすると、リダイレクトはしますが、 リダイレクト先のアドレスが、 http://www.◆◆◆s=sample となり、引数が残ってしまいます。 原因もわからず、どのようにしたらいいかが全くわかりません。 どなかたお教えください。

    • ベストアンサー
    • PHP
  • .htaccessでGET引数をもとにリダイレクト

    http://test.com/ というサイトがあったとして、.htaccessを用い、 http://test.com/123 というアドレスにアクセスした場合、 http://test.com/sample.php?id=123 にリダイレクトし、 http://test.com/m/123 にアクセスした場合は、 http://test.com/m/sample.php?id=123にリダイレクトさせたいと考えています。 リダイレクト後もアドレスバーのURLは http://test.com/123、あるいは http://test.com/m/123のまま維持しているようにしたいです。 id は常に数字のみで、サーバーはロリポップのチカッパプランです。 上の方は RewriteEngine on RewriteRule ^([0-9]+)$ sample.php?id=$1 としたらなんとなくできているようですが、 「m」のほうは「m」ディレクトリ内に RewriteEngine on RewriteBase /m/ RewriteRule /m/([0-9])$ /m/sample.php?id=$1 と置いても404エラーになってしまいます。 どうしたら良いのでしょうか?

    • ベストアンサー
    • HTML
  • htaccess リダイレクト機能の利用法を教えてください。。

    お世話になっております。 仮のURLで質問させて頂きます。 http://www.pine.co.jp/ma/index.htmlにアクセスがあった場合に、 https://wadax55.wadax.ne.jp/~pine-co-jp/ma/index.html にリダイレクトされるようにしたいのです。 そこでインターネットにありました以下文章を読んだのですが、よくわからないのです・・。お手数ですが教えてくださいますようお願い致します。 .htaccessでは、ディレクトリー構造そのままにリダイレクトさせることも可能です。 Redirect permanent /test/ http://www.shtml.jp/htaccess/ とすれば、http://www.shtml.jp/test/以下にあるファイルへのアクセスがあった場合には、リダイレクトされます。例えば、http://www.shtml.jp/test/basic.htmlへのアクセスは、http://www.shtml.jp/htaccess/basic.htmlへリダイレクトされます。 自分でこうかな?と思うやり方をトライしてみたものの悉く失敗し、めげています…。図々しいのですが、、、つまりどのように.htaccessファイルに記述し、それをどこに設置すればいいのでしょうか・・・?ファイルもだけれどもhtaccessというフォルダが必要なのか??というレベルです。 申し訳ございません。。。 教えて頂けますと大変助かります。

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

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

    • 締切済み
    • PHP