この質問は、多くの人が尋ねてきたことに打ちのめされていることは承知していますが、ほとんどの回答は、彼らのニーズにのみ合った非常に特定のケースに対するものであるように思われ、これまでのところ、適切な解決策は見つかりませんでした (少なくとも、私が見る限り)。
私の問題は、Web サイトで URL パラメータを ID から実際の文字列にリダイレクトさせようとしていることです。
例えば:
www.example.com/?category=1
次のように表示されます。
www.example.com/software
その間
www.example.com/?category=2
次のように表示されます。
www.example.com/software/desktop
私が読んだことから、私はApacheのrewritemapを調べているはずですが、これが私の混乱の原因です。フラットなtxtファイルからロードする必要はありません。これを可能な限り動的にします。phpファイルから読み取ったり、MySQLデータベースから読み取ったりできることを読みました。これが私の望みです。
それに関する問題は、これを達成するための適切な方法が何であるかがよくわからないことです。RewriteMapドキュメントは、フラットな .txt ファイルのみをカバーしており、MySQL では実現していません。
基本的に私が求めているのは、誰かが私が探しているものを達成する方法を説明できるかどうか、または少なくとも正しい方向に私を向けることができるかどうかです. これまでに見つけたスレッドのほとんどは、悲しいことにまだあまり役に立ちませんでしたが、有用なスレッドを通り過ぎた可能性があります。
それが役立つ場合、現在、MySQL データは次のように継承された構造でフォーマットされています。
ID | Title | Link | Parent
1 | Software | /Software/ | NULL
2 | Desktop Software | /Software/Desktop/ | 1
2 | Mobile Software | /Software/Mobile/ | 2
PS: 私が見つけたほとんどのソリューションは、例としてこれを与えることを追加する必要があります:
RewriteMap examplemap prg:/path/to/file.php
RewriteRule (.*) ${examplemap:$1}
それでも、その file.php の内容や、値を照会して返す方法に関する情報は決して提供しません。
編集 私は自分のプライベートサーバーではなく、共有ホスティングサーバーにいることに言及する必要があるため、可能なすべてのオプションにアクセスできない場合があります
EDIT 2 わかりやすくするために: 私がやろうとしているのは、「example.com/software」にアクセスするユーザーが「example.com/?category=1」にいるかのように扱われるようにすることです; 基本的にリンクをきれいにして読みやすくします。唯一のことは、データベースから読み取ろうとしているということです