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é.
É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
:Laconditionprécédente contient un mappage un-à-un de AAAA à MMJJ.
puis$1
est l'année à 4 chiffres capturée à partir duRewriteRule
是从
RewriteRule
pattern捕获的 4 位数字年份,然后CondPattern从 TestString,它是使用生成的替换字符串中的%1
patternCondPattern
à partir du TestStringqui est généré à l'aide du %1 est récupéré par référence arrière.
Narration :Cependant, vos règles d'origine présentent certains problèmes potentiels de référencement :
. 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).
. Si vous avez des demandes de cas mixtes, vous devez alors utiliser des redirections externes pour normaliser/corriger les demandes. Veuillez voir ci-dessous :Vous autorisez la correspondance insensible à la casse. Encore une fois, cela peut entraîner des problèmes de contenu en double