Rediriger à l'aide de htaccess, utiliser une barre oblique, un trait de soulignement ou une date comme délimiteur - URL conviviale
P粉717595985
P粉717595985 2023-09-11 12:11:18
0
1
423

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_ntddsemble me poser des problèmes avec le module de réécriture activé.

P粉717595985
P粉717595985

répondre à tous (1)
P粉180844619

Étant donné que la partie0204(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 dansRewriteMap- 然后可以在.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]

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

puis
CondPattern

à partir du TestStringqui est généré à l'aide du %1 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 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.
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!