私のブログの .htaccess は、1 つのページが複数の URL からアクセスされるように設定されており、アクセスした URL によって異なるコンテンツが表示されます。
http://kn3rdmeister.com/category/blog/
http://kn3rdmeister.com/2012/
http://kn3rdmeister.com/2012/07/
全て実際に使用してhttp://kn3rdmeister.com/blog.php
います。
.htaccess ファイルは、異なるクエリ文字列を使用するだけで 1 つのページ (ほとんどの場合)にリダイレクトするだけでよいという意味で非常に便利です。それらをいじくり回した後、私のすべてのルールが最終的に機能するようになりました。まあ、それらのほとんどすべてが機能します。最後のものはそうではありません。
.htaccess:
RewriteEngine On
RewriteRule ^blog\.php$ /category/blog/ [R=301,L]
RewriteRule ^category/blog/?$ blog.php [L]
RewriteRule ^category/blog/page/?$ /category/blog/ [R=301,L]
RewriteRule ^category/blog/page/([0-9]*)/?$ /category/blog/?pagenum=$1 [L]
RewriteRule ^([0-9]{4})/?$ /category/blog/?year=$1 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/?$ /category/blog/?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/?$ /category/blog/?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(^/]+)/?$ /category/blog/?url=http://kn3rdmeister.com/$1/$2/$3/$4/ [L]
最後のルールは、各ブログ投稿の「パーマネント リンク」ページにリダイレクトすることになっています。各 URL は一意であるため、投稿 URL を一意の識別子として使用しています。基本的に、"blog.php" を介して "url" クエリ文字列を渡すことになっています。PHP スクリプトが引き継ぎ、「url」クエリ文字列が設定されていることを確認し、その行に正確な URL を持つ唯一の投稿を読み込みます。
スクリプトは機能しますが、リダイレクトは機能しません。に直接行く
http://kn3rdmeister.com/blog.php?url=http://kn3rdmeister.com/2012/07/04/amsterdam-ave/
適切なコンテンツをロードします。ただし、
http://kn3rdmeister.com/2012/07/04/amsterdam-ave/
しません。