0

私はウェブサイトを持っており、MySQL を使用してデータを保存および取得しています。さまざまな目的地のデータがたくさんあります (はい、これは旅行代理店のウェブサイトです)。どうすれば .htaccess ファイルを設定して SEO フレンドリーな URL を表示できるのか疑問に思っています。

例: http://www.mywebsite.com/flights-result.php?id=10この URL は、アフリカのエンテベ行きのフライトの詳細ページです。http://のような URL が必要です。 www.mywebsite.com/Africa/Entebbe.htm

などなど、すべてのページにこれを追加する必要がありますか? データは毎日更新されているので、URLを自動的に書き込む簡単な方法はありますか?

どんな助けでも大歓迎です。

4

2 に答える 2

2

あなたが達成しようとしていることは、mysqlとは何の関係もないと思います。あなたが探しているのは、URL 書き換えと呼ばれるものです。従うべき方向性を示すことができる無数の記事があります。どの Web サーバーを使用しているのかよくわかりません。アパッチだと思います。ここにApachemodule_rewriteガイドがあります。

于 2012-04-23T15:24:20.137 に答える
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に...

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

次に、flights-results.php ファイルの開始近くで、ID のデータをロードし、提供された「国」と「場所」が正しいことを確認して (人々がここに何も入力しないようにするため)、次の場合は 4040 を返します。そうではありません。

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


あなたが言ったように、これらすべての URL を htaccess にハードコードすることもできますが、それは理想的ではありません :)

于 2012-04-23T15:31:10.620 に答える