トピック このトピックは解決済みです
TOPIC URLの静的化
Posted by satopon
at 2010/04/04(日) 11:14
分類: 情報交換 | AmigoDatabaseバージョン: ver9.85

データベースの検索にて、
カテゴリーページや検索結果ページのURLの静的化は出来ないでしょうか?
例)
※変更前
http://www.bessou.biz/b-data/b-data.cgi?cmd=dp&Tfile=Data&UserNum=&Pass=&AdminPass=&num=1046

※変更後
http://www.bessou.biz/b-data/1046.html

と短縮して表示したのです。

ググッて見るとやっておられる方いるようですが、やり方が書いてありませんでしたので、質問しました。

似たような感じで、yomi searchは、いろいろ説明しているサイトがあるようです。

編集: 2010/04/25(日) 09:48
トピック このトピックは解決済みです
レス表示 古い順 新しい順 | 10件のレス 1-10 表示中
RES レスメッセージ
Posted by Bear
at 2010/04/05(月) 17:04
Re:URLの静的化
こんにちは。
ご質問の件は
http://www.cgi-search.info/amigoforum/?tp=3723
こちらのトピックにてお返事させて頂いております。
カスタマイズノート公開までお待ち頂けましたら幸いです。
Posted by Bear
at 2010/04/06(火) 00:10
Re:URLの静的化
こんばんは。
カスタマイズノートに「データ詳細ページURLを静的URLに変更する」を公開しました。
http://www.cgi-search.info/amigo/db.cgi?cmd=j&DataNum=49
参考にして頂けましたら幸いです。
Posted by satopon
at 2010/04/07(水) 00:16
Re:URLの静的化
カスタマイズノートに「データ詳細ページURLを静的URLに変更する」を公開、ありがとうございます。
しかし、私の力量では理解できませんでした><

「data***.html」となっています。「***」はデータ番号の意味がわからなかったのと、

利用方法で、
データ詳細ページへのリンクURL(主に検索結果ページでのリンクURL)を http://あなたのドメイン/database/data***.htmlと書き換えるという意味がわかりませんでした。
検索結果ページというのはどのファイルをさしているのでしょうか?

またdb-html.cgiで
<a href="$BaseDir/data$VD[$REC{Data}{DataNum}].html">$VD[$REC{Data}{HPName}]</a>とありますが、私のサイトでは、データ詳細ページでもユーザーファイルを表示しているため、面倒な記述になってしまっています。

もし迷惑でなければ、一度見ていただき、指摘していただければ幸いです。
http://www.bessou.biz/
Posted by Bear
at 2010/04/07(水) 00:48
Re:URLの静的化
> No3922への引用返信
> カスタマイズノートに「データ詳細ページURLを静的URLに変更する」を公開、ありがとうございます。
> しかし、私の力量では理解できませんでした><

こんばんは。
説明が少しややこしかったようですね。申し訳ございません。
もう少し文章を変えて説明直しするよう修正したいと思います。

> もし迷惑でなければ、一度見ていただき、指摘していただければ幸いです。
> http://www.bessou.biz/

拝見させて頂きました。
例えばですね、「別荘検索」ページ(http://www.bessou.biz/b-data/search.html)から検索した結果が一覧で表示されますね。
その検索結果一覧ページで、1データ表示内の「詳細」とリンクされているのがデータ詳細ページへのリンクかと思います。
このリンクURLを
<a href="$BaseDir/data$VD[$REC{Data}{DataNum}].html">詳細</a>
のように書き換えます。あと画像のデータ詳細ページリンクも同様ですね。

その「詳細」をクリックしますと、データ詳細ページが表示されますね。
この中で「業者情報」での業者名がユーザー詳細ページへのリンクですね。このリンクURLを
<a href="$BaseDir/user$VU[$REC{User}{UserNum}].html">$VU[$REC{User}{業者名のデータ種類名}]</a>
と書き換えます。

同様に「販売・仲介業者検索」というのがありますね。
こちらで検索した検索結果一覧ページの1ユーザー当たりの表示内の「詳細」リンクは前述した「業者情報」での業者名のリンクと同じになります。

最後に.htaccessファイルの設定です。
RewriteEngine On   
RewriteRule ^data(\d+)\.html$ b-data.cgi?cmd=dp&num=$1 [L]
RewriteRule ^user(\d+)\.html$ b-data.cgi?cmd=dp&Tfile=User&dp=shop.html&num=$1 [L]
としてみて下さい。ユーザー詳細ページには「dp」のパラメータがあるようですので付け足しています。

●確認
「別荘検索」で表示される検索結果一覧の一番上のデータ番号が「1046」となっていますが、今までのアクセスURLは
http://www.bessou.biz/b-data/b-data.cgi?cmd=dp&Tfile=Data&UserNum=&Pass=&AdminPass=&num=1046
となっていたものが、以後このデータ詳細ページへのアクセスURLは
http://www.bessou.biz/b-data/data1046.html
となるはずです。

追加修正
「l-data/l-data.cgi」という別のAmigoDatabaseも使われているのですね。この部分は別に.htaccessファイルを作成する必要があります。
RewriteEngine On   
RewriteRule ^user(\d+)\.html$ l-data.cgi?cmd=dp&Tfile=User&dp=shop.html&num=$1 [L]
を同様に作成し、「l-data」ディレクトリにアップする必要があります。
リンクの修正については、前述した「b-data」側のユーザー検索側での修正と同じ方法で「l-data.cgi」側も修正して下さい。

更に追加修正
.htaccessファイルを別々に作成するように指示しましたが、一つにまとめることも可能です。
その場合、作成した.htaccessファイルを"ルートディレクトリ"にアップする必要がありますので、htaccessファイル内のURL置換え設定パスをそれぞれ指定する必要があります。
htaccessの設定例は以下です。
RewriteEngine On   
RewriteRule ^/b-data/data(\d+)\.html$ /b-data/b-data.cgi?cmd=dp&num=$1 [L]
RewriteRule ^/b-data/user(\d+)\.html$ /b-data/b-data.cgi?cmd=dp&Tfile=User&dp=shop.html&num=$1 [L]
RewriteRule ^/l-data/user(\d+)\.html$ /l-data/l-data.cgi?cmd=dp&Tfile=User&dp=shop.html&num=$1 [L]
こちらを採用する場合は「b-data」「l-data」に設置したhtaccessファイルは削除して下さい。

編集: 2010/04/07(水) 01:26
Posted by satopon
at 2010/04/10(土) 11:07
Re:URLの静的化
丁寧な説明ありがとうございます。
感謝します。

取り合えず物件データ部分を
説明いただいた通りにやって見ました。

1.まず
<a href="$BaseDir/data$VD[$REC{Data}{DataNum}].html">詳細</a>のように書き換えて


2.次に.htaccessファイルの設定です。
RewriteEngine On
RewriteRule ^data(\d+)\.html$ b-data.cgi?cmd=dp&num=$1 [L]
RewriteRule ^user(\d+)\.html$ b-data.cgi?cmd=dp&Tfile=User&dp=shop.html&num=$1 [L]としました。

>●確認
「別荘検索」で表示される検索結果一覧の一番上のデータ番号が「1046」となっていますが、今までのアクセスURLは

http://www.bessou.biz/b-data/b-data.cgi?cmd=dp&Tfile=Data&UserNum=&Pass=&AdminPass=&num=1046となっていたものが、以後このデータ詳細ページへのアクセスURLは

http://www.bessou.biz/b-data/data1046.html
※マウスを合わせるとこのようになりましたが、
クリックするとサーバーエラーページになってしまいます。

データの受け渡しがうまくいってないのか、私にはお手上げになってしまいました。
無理であれば一から作り直そうと思っております。

追記
db-html.cgiのHtml_Default(実際はHtml_2ですが)の詳細ページへのリンクは下記です。
<a href="$BaseDir/$MainCGI?cmd=dp&Tfile=$FORM{Tfile}&UserNum=$FORM{UserNum}&Pass=$FORM{Pass}&AdminPass=$FORM{AdminPass}&num=$VD[$REC{Data}{DataNum}]"><font color="#000000" style="font-size: 8pt">詳細</font></a>

編集: 2010/04/10(土) 11:28
Posted by Bear
at 2010/04/10(土) 13:16
Re:URLの静的化
こんにちは。

> http://www.bessou.biz/b-data/data1046.html
> ※マウスを合わせるとこのようになりましたが、
> クリックするとサーバーエラーページになってしまいます。

正しく設定してもURL変換が行われないのであれば、ご利用のサーバーで「mod_rewrite」モジュールは利用可能なのでしょうか?
また、htaccessの利用も可能なのでしょうか?

> 追記
> db-html.cgiのHtml_Default(実際はHtml_2ですが)の詳細ページへのリンクは下記です。
> <a href="$BaseDir/$MainCGI?cmd=dp&Tfile=$FORM{Tfile}&UserNum=$FORM{UserNum}&Pass=$FORM{Pass}&AdminPass=$FORM{AdminPass}&num=$VD[$REC{Data}{DataNum}]"><font color="#000000" style="font-size: 8pt">詳細</font></a>

「&UserNum=$FORM{UserNum}&Pass=$FORM{Pass}&AdminPass=$FORM{AdminPass}」の部分は不要です。
URLにパスワード情報などを繋げる事は情報漏洩に繋がることでもありますので削除されることをお勧め致します。
Posted by satopon
at 2010/04/23(金) 22:49
Re:URLの静的化
お世話になります

新規にamigo databaseをダウンロードして、
試してみましたが、やはりダメでした。
マウスを重ねると短縮されるのですが、クリックすると404エラーになってしまいます。

私の利用しているサーバーはロリポップなのですが、確認しましたが、「mod_rewrite」と「htaccess」の利用可能なようです。

どうしても使いたい機能ですので、使用しているレンタルサーバーを教えていただけませんか?
また今後AmigoDatabaseカスタマイズノートのほうで使用確認サーバーを募集していただければ幸いです。
Posted by 陸奥謳歌
at 2010/04/24(土) 00:15
Re:URLの静的化
こんばんわ、陸奥謳歌です。
今回のカスタマイズで使用されているモジュール「mod_rewrite」はApache2から標準でインストールされています。

したがって特種なサーバーを利用しないと使えないというものではないのでもう少しご自分で努力されてみてはどうでしょうか?


> No3996への引用返信
> お世話になります
>
> 新規にamigo databaseをダウンロードして、
> 試してみましたが、やはりダメでした。
> マウスを重ねると短縮されるのですが、クリックすると404エラーになってしまいます。
>
> 私の利用しているサーバーはロリポップなのですが、確認しましたが、「mod_rewrite」と「htaccess」の利用可能なようです。
>
> どうしても使いたい機能ですので、使用しているレンタルサーバーを教えていただけませんか?
> また今後AmigoDatabaseカスタマイズノートのほうで使用確認サーバーを募集していただければ幸いです。

編集: 2010/04/24(土) 01:34
Posted by Bear
at 2010/04/24(土) 13:50
Re:URLの静的化
こんにちは。

> 新規にamigo databaseをダウンロードして、
> 試してみましたが、やはりダメでした。
> マウスを重ねると短縮されるのですが、クリックすると404エラーになってしまいます。
>
> 私の利用しているサーバーはロリポップなのですが、確認しましたが、「mod_rewrite」と「htaccess」の利用可能なようです。

「mod_rewrite」と「htaccess」が使用可能であるならば、.htaccessの作成方法、書き方に問題があるのではないでしょうか?
.htaccessの作成はメモ帳やテキストエディターなどで「htaccess.txt」として作成していますか?
.htaccessは最後の行が空白でなくてはなりません。最後に必ず改行を入れていますか?
アスキーモードでFTPアップロード後に「.htaccess」にファイル名を変換していますか?

> どうしても使いたい機能ですので、使用しているレンタルサーバーを教えていただけませんか?
> また今後AmigoDatabaseカスタマイズノートのほうで使用確認サーバーを募集していただければ幸いです。

サーバーの問題ではないかと思います。「mod_rewrite」と「htaccess」が利用可能でそれぞれの設定が正しければ導入できる機能のはずです。
今まで.htaccessを利用されたことはありますか?ロリポップの.htaccessの説明ページを読まれたことはありますか?
http://lolipop.jp/manual/hp/htaccess/
これによるとパーミッションを604としなければならないようですが、604にされていますか?

もし.htaccessを使ったことがないのであれば一度上記URL内にある説明を読んで何らかの.htaccessを実行されてみて、ロリポップサーバーで.htaccessが正しく機能する事を確認してみるのもいいかもしれません。
また、.htaccessで検索すると沢山の.htaccessを説明されているウェブサイトさんがあります。まずは.htaccessをよく理解されて取りかかることも大事かと思います。同様にmod_rewriteモジュールにしても同様です。検索すれば沢山の説明ウェブサイトさんがありますので、一度目を通されても損はないかと思います。

編集: 2010/04/24(土) 14:03
Posted by satopon
at 2010/04/25(日) 09:48
Re:URLの静的化
新たにダウンロードしてみて、
やり直したところ、なんとかできました。
何度も返信ありがとうございました。
Access: 1,219,875
 
ソーシャルブックマーク: Yahoo!ブックマーク Google Bookmarks はてなブックマーク Livedoorクリップ @niftyクリップ FC2ブックマーク Buzzurl Delicious トピックイット newsing it!