【问题标题】:Adding date to url using htaccess使用 htaccess 将日期添加到 url
【发布时间】:2013-01-11 21:37:13
【问题描述】:

我正在尝试让 htaccess 与年份匹配,然后动态重写到页面

例如 www.website.com/party/2013 到 www.website.com/events.php?e=party

我试过了

Options +FollowSymLinks  
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{REQUEST_URI} events
RewriteRule ^(\w+)/%year%$ ./events.php?e=$1

但这不起作用

【问题讨论】:

    标签: .htaccess url date


    【解决方案1】:

    如果您检查REQUEST_URIevents,它永远不会匹配,因为这是您的目标网址而不是您的来源。当前年份是TIME_YEAR 而不是year,但TIME_YEAR 仅在RewriteCond 中可用。您的目标网址以点开头,这不起作用。

    删除RewriteCond %{REQUEST_URI} events。如果您想根据当前年份检查 URL,可以在 RewriteCond 指令中执行此操作。

    RewriteCond %{TIME_YEAR}/$2 (....)/\1
    RewriteRule /(\w+)/(\d\d\d\d) /events.php?e=$1
    

    RewriteCond 针对(digits)/same digits as backreference 模式测试current year/URL year。这有点棘手,但确实有效。

    【讨论】:

    • 这个^/(\w+)/%{TIME_YEAR}$ 不能工作。 %{TIME_YEAR} 包含在正则表达式中作为文字字符串,其想法是获取该服务器变量的 value 以将其与 URL 中的年份进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2010-09-15
    • 2020-02-15
    相关资源
    最近更新 更多