web-dev-qa-db-ja.com

URLからページIDを書き換えて非表示にします

私はサッカーのウェブサイトで次のものを操作しています。ユーザーがイベントをクリックすると、次のURL形式が表示されます。

  • /live/1/event-name.html

現在、URLの番号はページのID番号を表していますが、理想的にはこれを非表示にして次のURLを返します。

  • /live/event-name.html

URLパスのページID番号を完全に書き換えて非表示にするにはどうすればよいですか。

2
user3692459

あなたの場合、URLとWebサイトのバックエンドで実行しているデータベースの両方で、ID番号の代わりに実際のイベント名を一意の値として使用してください。

書き換えルールにはおそらく(サーバーがApacheであると仮定して)次のような行があります。

RewriteRule ^live/([0-9]+)/(.*)\.html$ processevent.php?ID=$1&Name=$2 [L]

その行を次のように変更します。

RewriteRule ^live/(.*)\.html$ processevent.php?Name=$1 [L]

次に、.*をより厳密な正規表現に置き換えて、URLに適切な文字が含まれるようにします。たぶん、このようなものはあなたにとってよりうまくいくでしょう:

RewriteRule ^live/([A-Za-z0-9\-]+)\.html$ processevent.php?Name=$1 [L]

バックエンドスクリプトで、スクリプトが使用するデータベースにアクセスし、イベント名を使用してページの処理に必要な関連データを検索します。イベント名をデータベーステーブルのプライマリキーにすることを検討してください。

1
Mike