2012-04-23 5 views
0

私はウェブサイトを持っていて、そこからデータを保存したり取り出したりするためにMySQLを使用しています。異なる目的地のデータがあります(これは旅行代理店のウェブサイトです)。例えば、SEOフレンドリーURLダイナミックウェブページのhtaccess

を表示するためのhtaccessファイル:http://www.mywebsite.com/flights-result.php?id=10このURLはアフリカのエンテベへのフライトの詳細ページですが、私は、http://www.mywebsite.com/Africa/Entebbe.htm

のように、このためのURLを持っているように彼らのためにしたいと思いますもう1つは、すべてのページにこれを追加する必要がありますか?データは日々更新されていますので、簡単にURLを書き込む方法はありますか?

ご協力いただきありがとうございます。

+1

あなたには、いくつかのあなたのアプリのエントリポイントについてのより多くの情報を与えることができますか?リクエストはどのように処理されますか?あなたが使用しているフレームワーク/構造は何ですか? – HappyTimeGopher

+0

何を試しましたか?あなたは正しい検索条件(htaccess、SEO)を持っているので、SOまたはgoogleで探してみてください。 – TJHeuvel

+0

@HappyTimeGopher私はあなたのポイントを取得しない、より具体的なことを教えてくださいできますか? – user1250285

答えて

2

あなたが達成しようとしていることは、mysqlとは何の関係もないと思います。あなたが探しているのは、URL書き換えと呼ばれます。あなたに続くべき方向を示すことができる無数の記事があります。あなたが使用しているWebサーバーが正しくないかどうかはわかりません。私はそれがApacheだと推測します。 HereはApache module_rewriteガイドです。

2

オリジナルのURLを指定すると、mod_rewriteを使用してこれを完全に行うための情報がすべてあるわけではありません。

それで、すべてのWebリクエストをコントローラファイルに送信し、そこからリクエストuriを解析し、正しいページをロードします。

のでhtaccessファイルで、

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ controller.php [L] 

...のようなものは、次にcontroller.phpには、URLを解析し、正しいページをロードします。あなたが好むかもしれ


異なるオプション、(あなたが特定の最終URLに柔軟している場合)は、このように見える終わるURLを持つことです。

http://www.mywebsite.com/flights/10/Africa/Entebbe.htm 

これはそうやって単純だろうコントローラを実装する代わりに(私はルーティング要求のためのコントローラを好むが)。 htaccessファイル中のSO

...

RewriteRule 
    ^/flights/([0-9]{1,10})/([a-zA-Z]+)/([a-zA-Z]+)\.htm$ 
    flights-result.php?id=$1&country=$2&place=$3 [L] 

が続い便-results.phpファイルの先頭付近で、あなたが提供する「国」と「場所」というをチェックし、IDのデータをロードする必要があります(ここに何も入っていない人を止めるため)正しいものであれば4040を返す。

あなたのアプリが出力するすべてのリンクを新しいスタイルに変更することを忘れないでください。


あなたが述べたように、また、可能性のハードコードのすべてのこれらのURLのhtaccessに、それは理想的ではありません:)

+0

私は本当にあなたの援助の手に感謝しますが、この質問はあなたが私を打つようにするかもしれない:私はhtaccessとPHPに精通していないので、私はhtaccessで追加するための2つのコードを書いているのだろうか? controller.phpに何を入力してください – user1250285

+0

コントローラーの機能が正確にどのようにthあなたのアプリと既存のコードベースの残りの部分。あなたはPHPのparse_url()関数、switch()文を使い、 "require"を使って正しいファイルをロードすることで、本当にシンプルなバージョンを作ることができます。あなたはこれらの言及された機能のそれぞれをここで検索することができます:http://php.net/ :) – HappyTimeGopher

+0

ありがとうHappyTimeGopherあなたは私を助けようとしていましたが、あなたの指示に従う知識が少なくて済みます。 – user1250285