同じページを指すための 2 つの書き換えルールを記述する代わりに、Or ステートメント ( | ) を使用して 1 つのルールでこれを行うことができます。
RewriteRule ^([\d]+)-post[\d]*\.html|#post([\d]+) /post.php?p=$1.html [R=301,NC,L]
とにかく1つしか表示されないため、最後に追加の$ 2を試してみました:
RewriteRule ^([\d]+)-post[\d]*\.html|#post([\d]+) /post.php?p=$1$2.html [R=301,NC,L]
上記のルールを使用すると、これはうまく機能します。
site.com/14729-post9.html
ただし、これは機能しません(ここでテストされ、機能するはずですが: http://regexpal.com/ ):
site.com/post.php?p=14729#post14729
実際にそれを機能させる方法はありますか、それとも 2 つの個別のルールを作成する必要がありますか?
ところで、どちらかの方法でサーバーの負荷が高くなりますか?