Leiten Sie mit htaccess weiter, verwenden Sie Schrägstrich, Unterstrich oder Datum als Trennzeichen – freundliche URL
P粉717595985
P粉717595985 2023-09-11 12:11:18
0
1
417

Das funktioniert gut:

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

Verwenden Sie FolgendesRewiteRule

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

Ich möchte diese neue URL erhalten:

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

Von dieser alten URL

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

Ich habe verschiedene Methoden ausprobiert, darunter:

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

Übereinstimmung mit dem letzten Ordner20230204_ntddscheint mir Probleme zu bereiten, wenn das Rewrite-Modul aktiviert ist.

P粉717595985
P粉717595985

Antworte allen (1)
P粉180844619

由于请求的 URL 中不存在0204(MMDD) 部分,因此您需要对其进行硬编码。幸运的是,任何一年只有一个 MMDD。

如果您有权访问服务器配置,那么您可以实现一个包含一对一映射的RewriteMap- 然后可以在.htaccess中查找该映射.

否则,您可以在.htaccess中执行类似以下操作:

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

前面的条件包含 YYYY 到 MMDD 的一对一映射。$1是从RewriteRulepattern捕获的 4 位数字年份,然后CondPattern从 TestString,它是使用生成的替换字符串中的%1反向引用检索的。


旁白:

但是,您的原始规则存在一些潜在的 SEO 问题:

  1. 您允许在请求的 URL 上使用可选的尾部斜杠。但两者都会返回相同的资源。这些是严格意义上的两个不同的 URL,并且可能会产生重复内容问题。如果有可能同时收到两个 URL(带或不带尾部斜杠),那么理想情况下您应该从一个 URL 重定向到另一个 URL(无论规范如何)。

  2. 您允许不区分大小写的匹配。同样,这可能会导致重复内容问题。如果您确实有混合大小写的请求,那么您应该使用外部重定向来规范/更正请求。请参阅以下内容:
    如何在 .htaccess 中将 URL 从大写重写为小写

  3. 如果您要更改现有的 URL 结构(已被第三方索引和/或链接),那么您需要在另一个指令中实现外部 301 重定向,从旧到新,以便以保护搜索引擎优化。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!