これを行うための合理的な方法があるかどうか、または何かが足りないかどうかはわかりません。私が構築したコンテンツ管理システムは、テンプレート システム (基本的には処理を行う単一の PHP ファイル) を介してすべてを渡します。それを念頭に置いて、次のルールは lucy.php にリクエストを送信し、そこで URL が検証され、適切なテンプレートが読み込まれます。
RewriteRule ^$ lucy.php [L,QSA]
RewriteRule ^([^/\.]+)/?$ lucy.php?section1=$1 [L,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ lucy.php?section1=$1§ion2=$2 [L,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ lucy.php?section1=$1§ion2=$2§ion3=$3 [L,QSA]
したがって、URL の各部分は section# 変数としてスクリプトに送信されます。私の問題は、独自の URL システムを必要とするテンプレートを使用しているときです。この場合は... ブログです。通常、私は次のようなことをします
RewriteRule ^blog/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/\.]+)/?$ site/blog.php?year=$1&month=$2&day=$3&blog_url=$4 [L,QSA]
要求を 1 回限りのスクリプトに送信します。私が現在行っている方法は、http: //domain.com/blog が、ブログ テンプレートが読み込まれて表示される前述の lucy.php スクリプトを通過することです。では、リクエストの /blog 部分を適切な書き換えルールにルーティングできるようにしつつ、年、月、日、および blog_url フィールドをクエリ文字列に追加することは可能でしょうか? /blog の URL は一貫して同じではなく、ブログと呼ばれることさえない可能性があるため、動的に機能するものが必要です。
私が持っていた唯一のアイデアは、lucy.php 書き換えの各インスタンスを複製して、日付ベースの構造のオプションのパラメーターを含めることでした。何かのようなもの...
RewriteRule ^([^/\.]+)/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/\.]+)/?$ lucy.php?section1=$1&year=$2&month=$3&day=$4&item_url=$5 [L,QSA]
しかし、もっと効率的な方法があるかもしれないと思いました。この規則のもう 1 つの問題は、カテゴリ、作成者、その他のブログ以外のシナリオなど、他のシナリオでも機能するようにしたいということです。これらのインスタンスごとに lucy.php 書き換えのブロックを複製する必要はありません。考え?