これはうまくいきます:
次の RewriteRule
RewriteRule
この新しい URL を取得したいです:
この古い URL から
私は次のようなさまざまな方法を試しました:
最後のフォルダーと一致する 20230204_ntdd が問題の原因となっているようです。書き換えモジュールがオンになっています。
20230204_ntdd
0204 (MMDD) 部分が要求された URL に存在しないため、ハードコーディングする必要があります。幸いなことに、MMDD は 1 年に 1 つだけあります。
0204
サーバー構成にアクセスできる場合は、1 対 1 マッピングを含む RewriteMap を実装できます。そのマッピングは .htaccess で検索できます。
RewriteMap
.htaccess
それ以外の場合は、.htaccess で次のようなことを行うことができます:
前述の 条件には、YYYY から MMDD への 1 対 1 のマッピングが含まれています。 $1 は RewriteRule pattern から取得された 4 桁の年で、CondPattern は TestString から取得されます。 used 生成された置換文字列内の %1 後方参照が取得されます。
$1
%1
ナレーション:
ただし、元のルールには SEO 上で潜在的な問題がいくつかあります。
リクエストされた URL では、オプションの末尾のスラッシュを許可します。ただし、どちらも同じリソースを返します。これらは厳密には 2 つの異なる URL であり、重複コンテンツ の問題が発生する可能性があります。 (末尾のスラッシュの有無にかかわらず) 2 つの URL を同時に受信できる場合は、(仕様に関係なく) 1 つの URL から別の URL にリダイレクトするのが理想的です。
大文字と小文字を区別しない一致を許可します。これにより、重複コンテンツの問題が発生する可能性があります。大文字と小文字が混合したリクエストがある場合は、外部リダイレクトを使用してリクエストを正規化/修正する必要があります。以下を参照してください: .htaccess で URL を大文字から小文字に書き換える方法
既存の URL 構造 (サードパーティによってインデックス付けされている、またはリンクされている) を変更する場合は、別のディレクティブに外部 301 リダイレクトを古いものから新しいものへ順に実装する必要があります。検索エンジンの最適化を保護します。
0204
(MMDD) 部分が要求された URL に存在しないため、ハードコーディングする必要があります。幸いなことに、MMDD は 1 年に 1 つだけあります。サーバー構成にアクセスできる場合は、1 対 1 マッピングを含む
RewriteMap
を実装できます。そのマッピングは.htaccess
で検索できます。それ以外の場合は、
リーリー.htaccess
で次のようなことを行うことができます:前述の 条件には、YYYY から MMDD への 1 対 1 のマッピングが含まれています。
$1
はRewriteRule
pattern から取得された 4 桁の年で、CondPattern は TestString から取得されます。 used 生成された置換文字列内の%1
後方参照が取得されます。ナレーション:
ただし、元のルールには SEO 上で潜在的な問題がいくつかあります。
リクエストされた URL では、オプションの末尾のスラッシュを許可します。ただし、どちらも同じリソースを返します。これらは厳密には 2 つの異なる URL であり、重複コンテンツ の問題が発生する可能性があります。 (末尾のスラッシュの有無にかかわらず) 2 つの URL を同時に受信できる場合は、(仕様に関係なく) 1 つの URL から別の URL にリダイレクトするのが理想的です。
大文字と小文字を区別しない一致を許可します。これにより、重複コンテンツの問題が発生する可能性があります。大文字と小文字が混合したリクエストがある場合は、外部リダイレクトを使用してリクエストを正規化/修正する必要があります。以下を参照してください:
.htaccess で URL を大文字から小文字に書き換える方法
既存の URL 構造 (サードパーティによってインデックス付けされている、またはリンクされている) を変更する場合は、別のディレクティブに外部 301 リダイレクトを古いものから新しいものへ順に実装する必要があります。検索エンジンの最適化を保護します。