プロが教える店舗&オフィスのセキュリティ対策術

SEO対策としてcgiで動的に表示されるページを静的なURLで記載したいと思っております。
htaccessを使えば可能なようですが、http://www.aaa.com/tokyo/sibuyaのURLでhttp://www.aaa.com/cgi-bin/test/search.cgi?pref= …を実行するにはどのように記載したらよいのでしょうか。
*tokyo,sibuyaの部分には任意の都道府県、都市名を入れたいです

A 回答 (4件)

> ついでで申し訳ないのですが、

http://www.aaa.com/tokyo/sibuyaの「tokyo」「sibuya」の部分に日本語を入力すると、cgiの実行結果が文字化けしてしまいます。
> 何か改善の方法はありますでしょうか?

URLエンコードされているとか、リンク元の文字コードがプログラムの文字コードと異なっていると言った事が原因ではないでしょうか。
拡張子がcgiなのでperlかと思いますが、decode関数等を使って文字コードを整えてやるといいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
うまくいきました。
本当に助かりました。

お礼日時:2013/09/12 16:56

RewriteEngine on


RewriteCond %{REQUEST_URI} !^/cgi-bin/test/search.cgi$
RewriteRule ^/(.+)/(.+)$ /cgi-bin/test/search.cgi?pref=$1&city=$2 [L]

または、最後の行を

RewriteRule ^(.+)/(.+)$ /cgi-bin/test/search.cgi?pref=$1&city=$2 [L]

で、どうでしょう。
2行目はリライトの無限ループ防止です。
3行目の2種類の違いは、パターンマッチの先頭に / を入れるか入れないかの違いです。
.htaccess で制御する場合、/ が入っているとマッチしない事があるので2パターン試してみてください。
httpd.conf 等に書く場合は / が必要なはずです。
    • good
    • 0
この回答へのお礼

/ をつけないパターンでうまくいきました。
ありがとうございます。

ついでで申し訳ないのですが、http://www.aaa.com/tokyo/sibuyaの「tokyo」「sibuya」の部分に日本語を入力すると、cgiの実行結果が文字化けしてしまいます。
何か改善の方法はありますでしょうか?
ちなみに、http://www.aaa.com/cgi-bin/test/search.cgi?pref=東京&city=渋谷をそのまま入力すると文字化けはしません。

お礼日時:2013/09/12 15:44

> しかし、うまく動作しませんでした。


> 何か考えられる問題はありますでしょうか?

エラーが出ているのでしょうか?
cgiにパラメータが渡って来ないのでしょうか?
渡ってきたパラメータが意図したものと違うのでしょうか?
    • good
    • 0
この回答へのお礼

再度ありがとうございます。
「エラー: このリンクは無効です。」となりますので、変換自体がされていないのではないかと思われます。

お礼日時:2013/09/12 13:56

RewriteEngine on


RewriteRule ^/(.+)/(.+)$ /cgi-bin/test/search.cgi?pref=$1&city=$2 [L]
    • good
    • 0
この回答へのお礼

さっそくご回答ありがとうございます。
しかし、うまく動作しませんでした。
何か考えられる問題はありますでしょうか?

お礼日時:2013/09/12 11:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!