.htaccess 重写URL以重定向并添加前导零

xhv8bpkk  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(118)

我在服务器上有一个请求,指向此URL:日期部分没有零。

http://example.com/url.php?date=2023-1-01

有没有办法给1到9的月份加一个零,然后从htaccess重定向

http://example.com/url.php?date=2023-01-01
6qftjkof

6qftjkof1#

您可以在根.htaccess文件顶部附近使用mod_rewrite执行类似以下的操作。
例如:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(date=\d{4}-)([1-9]-\d\d)$
RewriteRule ^url\.php$ /$0?%10%2 [R=302,L]

RewriteCond指令捕获查询字符串中需要插入0的位置之前和之后的部分。这些部分存储在反向引用%1%2中,稍后将在 * substitution * 字符串中使用它们来重构查询字符串。

  • substitution * 字符串(即/$0?%10%2)由以下部分组成:
  • /-外部重定向所需的斜杠前缀。
  • $0是与RewriteRule * 模式 * 匹配的URL路径的反向引用。在本例中为url.php
  • ?-分隔查询字符串的开头
  • %1-保存前一个 * CondPattern * 中第一个捕获组(括号中的子模式)的值。即,格式为date=NNNN-的字符串
  • 0-文字零。
  • %2-保存前一个 * CondPattern * 中第二个捕获组的值,即格式为N-NN的字符串。

相关问题