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

動的ページを静的ページとして検索エンジンに読み込ませたいと思い、.htaccessをいぢっています。
mod_rewriteを利用すれば可能だという事なのですが、検索して出てくる事例を見ても当方のWebサイトでの応用が上手くゆきません。

このようなURLになっています。

shop/cgi/m_goods_detail.cgi?CategoryID=35&GoodsID=82&BasketSessionID=

これを、shop/cgi/35/82.html

のように整形したいのですが、具体的な正規表現やmod_rewriteの使用法を教えて頂けないでしょうか?

通常はURL末尾の&BasketSessionID=に数値が入ることはありません。

しかし、時々、shop/cgi/m_basket.cgi?BasketSessionID=b53eaa5ab8451bd22d02f3d2ac133863

というように、BasketSessionID=の項目だけで使われていることがあるようです。

これが不具合の元にならないと良いのですが。

●質問者: himawari-sun
●カテゴリ:インターネット ウェブ制作
✍キーワード:.htaccess ?B CGI HTML mod_rewrite
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●35ポイント

こんな感じでしょうか。

RewriteEngine on
RewriteRule /cgi/m_goods_detail.cgi?CategoryID=([0-9]+)&GoodsID=([0-9]+)&BasketSessionID=$ /cgi/$1/$2.html
◎質問者からの返答

ご回答感謝します。書いて頂いた例で試してみたいと思います。参考になります。


2 ● 堺ちゃん
●35ポイント

.htaccessやmod_rewriteの記述方法を探すよりも

優れたCMSをダウンロードしてソースを読んだほうが参考になるかもしれませんね。

<IfModule mod_rewrite.c>

RewriteEngine on

# ベースとなるディレクトリ

#RewriteBase /shop/cgi

# 後ろのURLをGETに変換 'm_goods_detail.cgi?q=x'.

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ m_goods_detail.cgi?q=$1 [L,QSA]

</IfModule>

最後の[L,QSA]のQSAはパラメーターを引き継ぐというオプション設定で、

例えば

shop/cgi/35/82?BasketSessionID=XXXX

と送信されたら

shop/cgi/m_goods_detail.cgi?q=35/82&BasketSessionID=XXXX

と&でつなげてくれます。

あとは m_goods_detail.cgi で q の値をスプリットすればいいと思います。

◎質問者からの返答

パラメータを引き継ぐ形ですか。自分なりに検索して調べた事例と頭の中でつながる感じがします。示して頂いた例に沿っても試してみたいと考えています。ありがとうございます。

関連質問


●質問をもっと探す●



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