Maison  >  Questions et réponses  >  le corps du texte

Rediriger à l'aide de htaccess, utiliser une barre oblique, un trait de soulignement ou une date comme délimiteur - URL conviviale

Cela fonctionne bien :

https://example.com/2023/not-the-dinner-day

Utilisez ce qui suitRewiteRule

RewriteRule ^(\d{4})/not-the-dinner-day/?$ archive/reports//ntdd.php [NC,L]

Je souhaite obtenir cette nouvelle URL :

https://example.com/2023/not-the-dinner-day-photographs

De cette ancienne URL

https://example.com/archive/galleries/2023/20230204_ntdd/

J'ai essayé différentes méthodes, notamment :

RewriteEngine On
RewriteRule ^(\d{4})/not-the-dinner-day-photographs/?$ archive/galleries//_ntdd/ [NC,L]

La correspondance avec le dernier dossier20230204_ntdd semble me poser des problèmes avec le module de réécriture activé.

P粉717595985P粉717595985427 Il y a quelques jours487

répondre à tous(1)je répondrai

  • P粉180844619

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

    Étant donné que la partie 0204 (MMJJ) n'existe pas dans l'URL demandée, vous devez la coder en dur. Heureusement, il n’y a qu’un seul MMDD par année.

    Si vous avez accès à la configuration du serveur, vous pouvez implémenter un mappage un-à-un qui apparaît dans RewriteMap - 然后可以在 .htaccess.

    Sinon, vous pouvez faire quelque chose comme ceci dans .htaccess : 

    RewriteCond -0202 2019-(\d{4}) [OR]
    RewriteCond -0201 2020-(\d{4}) [OR]
    RewriteCond -0206 2021-(\d{4}) [OR]
    RewriteCond -0205 2022-(\d{4}) [OR]
    RewriteCond -0204 2023-(\d{4})
    RewriteRule ^(\d{4})/not-the-dinner-day-photographs/?$ archive/galleries//%1_ntdd/index.php [NC,L]

    La condition précédente contient un mappage un-à-un de AAAA à MMJJ. $1 est l'année à 4 chiffres capturée à partir du RewriteRule 是从 RewriteRule pattern 捕获的 4 位数字年份,然后 CondPattern 从 < em>TestString,它是使用生成的替换字符串中的 %1pattern

    puis
    CondPattern

    à partir du < em>TestString qui est généré à l'aide du < code>%1< /code> est récupéré par référence arrière.

    Narration :
    1. Cependant, vos règles d'origine présentent certains problèmes potentiels de référencement :

    2. Vous autorisez une barre oblique finale facultative sur l'URL demandée. Mais les deux renverront la même ressource. Il s'agit strictement de deux URL différentes et peuvent créer des problèmes de
    3. contenu en double

      . S'il est possible de recevoir deux URL en même temps (avec ou sans barre oblique finale), alors idéalement, vous devriez rediriger d'une URL à l'autre (quelle que soit la spécification).
      Vous autorisez la correspondance insensible à la casse. Encore une fois, cela peut entraîner des problèmes de < /a>contenu en double

      . Si vous avez des demandes de cas mixtes, vous devez alors utiliser des redirections externes pour normaliser/corriger les demandes. Veuillez voir ci-dessous :
    4. Comment réécrire une URL de majuscule à minuscule en .htaccess

    🎜Si vous modifiez la structure d'URL existante (qui a été indexée et/ou liée par des tiers), alors vous devez implémenter une redirection 301 externe dans une autre directive, de l'ancienne vers la nouvelle, afin de protéger le référencement. 🎜 🎜 🎜

    répondre
    0
  • Annulerrépondre