• 締切済み

動的URLから静的URLへのリダイレクト

htaccessで動的URLを静的URLに301リダイレクトしたいのですが、うまくいきません。 どのように記述すればよいでしょうか? 静的URL同士のリダイレクトしか分からず、困っています。 よろしくお願いします。 http://example.com/yyy.cgi?cate=1&page=1 リダイレクト先 http://example.com/zzz.htm

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

.htaccessじゃなく、CGIで単純にQUERY_STRINGやPATH_INFOを使えばよいかと思いますけど・・  そもそもそれってCGI相手にリクエストしてるのですから・・ if($ENV{'QUERY_STRING'}){   ******   ******   elsif($ENV{'SCRIPT_NAME'} eq 'yyy.cgi')     {&Redirect301;} }    

rootster
質問者

補足

うまく伝わってないようです。 CGIで生成されたページそのものはすでに存在しません。 背景を説明すると長くなってしまうのですが、サーバを移転し、その際に静的URLに変更しました。 下記のようなURLでブックマークされており、そのリクエストに対して新たな静的URLを充てたいのです。 そのため http://example.com/xxx/yyy.cgi?cate=1&page=1http://example.com/zzz.htmhttp://example.com/xxx/yyy.cgi?cate=1&page=2http://example.com/vvv.htmへ という具合にそれぞれリダイレクトしたいのです。 そういったリダイレクトは不可能でしょうか? 説明が悪くて申し訳ありません。

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

>htaccessで動的URLを静的URLに301リダイレクトしたいのですが、 「静的URLを動的URLに301リダイレクトしたい」の間違いではないのですよね? 動的を静的というのは、レアケースだと思うので、あまりサンプルはウェブ上にはないかと。 >http://example.com/yyy.cgi?cate=1&page=1 >リダイレクト先 >http://example.com/zzz.htm そういうことであれば、.htaccessを使わず、yyy.cgi で リダイレクトヘッダを返すのが簡単だと思います。 あと、cate= や page= のパラメータはどうするのですか?それらの値がどうであれ、yyy.cgiが呼ばれたらzzz.htmにリダイレクトする?

rootster
質問者

補足

動的を静的にで間違いありません。 パラメータが変われば単純に1つのURLと見なし、xxx.html へという具合にひとつずつ指定したいのです。 (10ページほどですので)

関連するQ&A

  • リダイレクトの記述方法について教えてください。

    (1)から(2)のURLへリダイレクトする.htaccessの記述方法を教えてください。 (1) http://www.example.com/wordpress/ と http://www.example.com/wordpress           ↓ (2) http://www.example.com/blog/ 但し、リダイレクトしたいのは上記URLだけです。 (1)のURL配下にある個別記事 http://www.exapmle.com/wordpress/?p=123 はリダイレクトしません。 自分で.htaccessに記述したところ、(1)の配下の個別記事までリダイレクトしたため、慌てて削除したところです。 よろしくお願いします。

    • 締切済み
    • CSS
  • 動的URLから静的URLへの301リダイレクト

    下記のように動的URLを静的なURLに置き換えています。 http://www.sample.com/dir/aaa/index.php?content_id=1 ↓ http://www.sample.com/aaa_index.content_id_1.htm この動的URLを、置き換えた静的URLへ301リダイレクトさせたいのですが、うまくいきません。 htaccessの記述を下記のようにしましたが、多分、動的URLの「?」があるためうまくいかないようです。 RewriteEngine on RewriteBase / RewriteRule ^dir/aaa/index\.php?content_id=(.*)$ /aaa_index.content_id_$1.htm [R=301,L] 「?」が含まれる動的URLから静的URLに301リダイレクトさせたい場合、どのように記述すれば良いでしょうか?

  • htaccessでのクエリ付URLのリダイレクト

    .htaccessにて、Perlで作成されたスクリプトのURLを以下のようにmod_rewriteで変換を行っています。 RewriteEngine on RewriteBase /cgi/ RewriteRule ^([0-z]+)/([0-z]+)\.html$ index.cgi?mode=$1&no=$2 通常の場合、 http://example.com/cgi/index.cgi?mode=pv&no=1 といったURLが、mod_rewriteにて http://example.com/cgi/pv/1.html というURL形式でアクセスが可能です。 そこでやりたい事なのですが、上記のpvの箇所をpastという風に変更したいと思っています。 http://example.com/cgi/pv/1.html http://example.com/cgi/past/1.html スクリプト側の問題かも知れませんが、過去ログに移行したデータなどはpastになるのですが、何故かpv(現行ログ)でもアクセス出来てしまいまして、出来れば.htaccessでpastに統一したいと思っています。 そこで単純ながら、Redirect permanentを使い、 Redirect permanent /cgi/view/ http://example.com/cgi/past/ としたところ、リダイレクトはされるのですが、 http://example.com/cgi/past/1.html?mode=view&no=1 となってしまいます。 語尾のクエリ部分「?mode=view&no=1」が出ないようにしたいのですが、どのような方法があるか、ご教示頂けますと幸いです。 RewriteCond %{QUERY_STRING}なども調べて見たのですが、詳しくどう記述すれば良いかわかりませんでした。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • パラメーター付きのURLをリダイレクトしたい

    お世話になります .htaccess でリダイレクトを行いたいのですが、パラメータ付きのURLの為かリダイレクトができません。 .htaccess内の記述↓ redirect 301 /aaa/bbb.php?N=1 http://www.aaa.com/index.html 「?=N1」の部分を取れば問題なくリダイレクトします パラメータ付きのURLはリダイレクト可能でしょうか? よろしくお願いいたします

  • http → https リダイレクト

    【http://example.com】にアクセスしたら【https://example.com】へリダイレクトしたいのですが、indexファイルが【/var/www/html/index.html】にある場合、どのようにすればよいでしょうか?やり方はhttpd.confにリダイレクト指定をしても.htaccessファイルを用いても何でも結構です。記述方法がよくわからないのです。 ご存知の方、宜しくお願いします。

  • .htaccessのリダイレクトについて

    .htaccessで以下のようにURLをリダイレクトさせたいのですが、調べてもなかなかこのようなサンプルがなく、悩んでいます。 以下のようなURLにアクセスした場合 example.com/public example.com/public/ example.com/public/pageA example.com/public/pageB example.com/public/pageB/pageC 以下のように、publicを削除したURLにリダイレクトしたいです。 example.com example.com/ example.com/pageA example.com/pageB example.com/pageB/pageC 上記の設定は.htaccessのRewriteRuleの設定で可能でしょうか? どなたか詳しい方がいたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • URL リダイレクト

    htmlアクセス時においてURLリダイレクトする方法についてお伺いします。 htmlの<meta refresh=..>やjavascriptのlocation.replace、.htaccessのredirectとリダイレクトの方法はいろいろあるようですが、今回はcgi+ssiで実現したいと思っています。 そこで質問なのですが、htmlからSSIを使用して<--!exec cgi="./redirect.cgi"-->のようにしてリダイレクトさせるにはどうすればよいのでしょうか。 cgiではhttpdヘッダのlocatinでURLを指定することで、リダイレクトは可能だと思います。 そしてそのリダイレクトするcgiを直接呼び出したり、フォームで呼び出すことでの動作は正常に確認しました。 しかしhtmlからSSIのexecやvirturlなどを使用してのリダイレクトがどうしてもできません。もちろんSSI,EXEC使用可能なサーバーです。 どうぞよろしくお願いします。

    • 締切済み
    • CGI
  • httpsからhttpへリダイレクトさせたい

    Googleの検索結果で、なぜかトップページだけがhttpsでインデックスされてしまっています。 SSLを利用していないのでエラーが出てしまいます。そこで下記のようにリダイレクトをさせたいと考えています。 https://example.com/ ↓ http://example.com/ .htaccessを利用して行いたいのですが、どのように記述をしたらいいでしょうか。 色々試してみたのですが、トップページだけというのがうまくいきません。 よろしくお願いします。

  • 301リダイレクトの記述方法について

    301リダイレクトの記述方法について、わからないことがあり困っています。 質問は2つあるのですが、2番めはふとした疑問なので、ご存じの方がいれば教えて下さいm(__)m (1) 以下の4つのURLを301リダイレクトしたい場合の記述方法を教えて下さい。 転送元: (1)http://www.example.com/hoge/ (2)http://www.example.com/who/ (3)http://www.example.com/hoge/link/ (4)http://www.example.com/who/test.html 転送先: http://www.abc.com (2) 301リダイレクトの転送元URLの記述方法ですが、相対パスではなく絶対URLで記述するのは間違いに当たるのでしょうか? 相対パス:Redirect 301 /hoge/ http://www.abc.com 絶対URL:Redirect 301 http://www.example.com/hoge/ http://www.abc.com

    • ベストアンサー
    • HTML
  • 301リダイレクトで変更したいのですが

    301リダイレクトk.htaccessの書き方を教えてください xxx.aaa.com/ ↓ yyy.aaa.com/ とサブドメイン名を変更し、かつすべてのドメイン直下ファイルを htm → html に変更 する場合、.htaccess はどう書けばいいのでしょうか。 サブドメインのみの変更は Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://yyy.aaa.com/$1 [R=301,L] でうまくいったのですが htm → html に変更の方がわかりません よろしくお願いします。

専門家に質問してみよう