人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

apacheを使ったリダイレクトについて質問です。

・元々index.htmlというファイルが存在します
・xxx/xxx/index.html?aaa=1&bbb=2というURLを叩いた際に
index.cgi?aaa=1&bbb=2にリダイレクトしたい

・以下の記述をすると、普通にindex.htmlを見ても
(パラメータが無い状態で見ても)リダイレクトされてしまう
# RedirectMatch "xxx/(.*)/index.html?aaa=1&bbb=2

指定のパラメータがついている場合だけ、リダイレクトさせたいのです。
具体的な書き方や、サンプルを示して頂ける方、御教示ください。宜しくお願いします。

●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:AAA Apache CGI HTML INDEX
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● pahoo
●23ポイント

Rewriteモジュールを使うといいでしょう。

以下に、記述例を示します。

RewriteEngine On
RewriteBase /xxx/xxx
RewriteRule index\.html\?aaa=1\&bbb=2 index.cgi?aaa=1&bbb=2 [L]

参考サイト

◎質問者からの返答

ありがとうございます。でも、上手く動きません。。

大変恐縮ですが、再度アドバイスいただけますでしょうか。

・bbbの値は可変です。

・xxx/xxx/index.html?aaa=1&bbb=123456というURLを叩いた際に

xxx/index.cgi?aaa=1&bbb=123456に飛ばしたいです。

rewritebaseの値が変わってくると思い、いろいろいじっていますが上手くいきません。

出来れば是非たすけてください!


2 ● kn1967
●23ポイント

mod_aliasではなくmod_rewriteを用いる事が可能ならば

RewriteEngine on
RewriteRule ^/xxx/(.*)/index.html?(.*) /xxx/$1/index.cgi?$2 [L]

といったような感じに直せば良いのですが

mod_aliasではお望みのようなことは出来なかったと思います。

.htaccessのmod_rewriteの質問です。 リダイレクト・正規表現を使うと思います。 http://www.hoge.com/54343.html のようなディレクトリ配下のhtmlへのアクセスを全て http.. - 人力検索はてな

◎質問者からの返答

ありがとうございます。mod_rewrite了解です。試してますが、なかなか上手くいきません。。


3 ● tezcello
●22ポイント

www.hoge.com/zzz/xxx/yyy/index.html?aaa=1&bbb=2

へのアクセスを

www.hoge.com/zzz/xxx/index.cgi?aaa=1&bbb=2

yyy はどんな値が来るか不問

aaa, bbb などのクエリは名前も値も数も不問 全てを index.cgi へ渡す


へ渡すと仮定して回答します。


zzz のディレクトリへ以下の内容の .htaccess を置きます。

RewriteEngine On
RewriteBase /zzz
RewriteRule ^aaa/yyy/index.html aaa/index.cgi [QSA,L]

zzz ではなく、xxx がルート直下であるなら、 RewriteBase の行は不要です。



http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

◎質問者からの返答

頂いたものを元に色々いじったら、できました!

大変ありがとうございました。感謝します。


4 ● poch-7003
●22ポイント

mod_rewriteを読み込んでる前提です.

テスト環境がなくて試してませんがこんな感じでしょうか.

RewriteEngine on
RewriteCond %{REQUEST_URI} index\.html
RewriteCond %{REQUEST_URI} aaa=.*
RewriteCond %{REQUEST_URI} bbb=.*
RewriteRule ^/xxx/index\.html\?aaa=(.*)&bbb=(.*)$ /xxx/index.cgi?aaa=$1&bbb=$2 [L]

アクセスログを見ながら設定すると,どこにリダイレクトされているか分かりますよ.

http://www.net-newbie.com/trans/mod_rewrite.html

◎質問者からの返答

頂いたものを元に色々いじったら、できました!

大変ありがとうございました。感謝します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ