ホームページ  >  に質問  >  本文

htaccess を使用してリダイレクトし、区切り文字としてスラッシュ、アンダースコア、または日付を使用します - フレンドリーな URL

これはうまくいきます:

リーリー

次の RewriteRule

を使用します。 リーリー

この新しい URL を取得したいです:

リーリー

この古い URL から

リーリー

私は次のようなさまざまな方法を試しました:

リーリー

最後のフォルダーと一致する 20230204_ntdd が問題の原因となっているようです。書き換えモジュールがオンになっています。

P粉717595985P粉717595985377日前450

全員に返信(1)返信します

  • P粉180844619

    P粉1808446192023-09-12 00:18:54

    0204 (MMDD) 部分が要求された URL に存在しないため、ハードコーディングする必要があります。幸いなことに、MMDD は 1 年に 1 つだけあります。

    サーバー構成にアクセスできる場合は、1 対 1 マッピングを含む RewriteMap を実装できます。そのマッピングは .htaccess で検索できます。

    それ以外の場合は、.htaccess で次のようなことを行うことができます:

    リーリー

    前述の 条件には、YYYY から MMDD への 1 対 1 のマッピングが含まれています。 $1RewriteRule pattern から取得された 4 桁の年で、CondPattern は < em>TestString から取得されます。 used 生成された置換文字列内の %1 後方参照が取得されます。


    ナレーション:

    ただし、元のルールには SEO 上で潜在的な問題がいくつかあります。

    1. リクエストされた URL では、オプションの末尾のスラッシュを許可します。ただし、どちらも同じリソースを返します。これらは厳密には 2 つの異なる URL であり、重複コンテンツ の問題が発生する可能性があります。 (末尾のスラッシュの有無にかかわらず) 2 つの URL を同時に受信できる場合は、(仕様に関係なく) 1 つの URL から別の URL にリダイレクトするのが理想的です。

    2. 大文字と小文字を区別しない一致を許可します。これにより、重複コンテンツの問題が発生する可能性があります。大文字と小文字が混合したリクエストがある場合は、外部リダイレクトを使用してリクエストを正規化/修正する必要があります。以下を参照してください:
      .htaccess で URL を大文字から小文字に書き換える方法< /a>

    3. 既存の URL 構造 (サードパーティによってインデックス付けされている、またはリンクされている) を変更する場合は、別のディレクティブに外部 301 リダイレクトを古いものから新しいものへ順に実装する必要があります。検索エンジンの最適化を保護します。

    返事
    0
  • キャンセル返事