我在服务器上有一个请求,指向此URL:日期部分没有零。
http://example.com/url.php?date=2023-1-01
有没有办法给1到9的月份加一个零,然后从htaccess重定向
http://example.com/url.php?date=2023-01-01
6qftjkof1#
您可以在根.htaccess文件顶部附近使用mod_rewrite执行类似以下的操作。例如:
.htaccess
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 * 字符串中使用它们来重构查询字符串。
RewriteCond
0
%1
%2
/$0?%10%2
/
$0
RewriteRule
url.php
?
date=NNNN-
N-NN
1条答案
按热度按时间6qftjkof1#
您可以在根
.htaccess
文件顶部附近使用mod_rewrite执行类似以下的操作。例如:
RewriteCond
指令捕获查询字符串中需要插入0
的位置之前和之后的部分。这些部分存储在反向引用%1
和%2
中,稍后将在 * substitution * 字符串中使用它们来重构查询字符串。/$0?%10%2
)由以下部分组成:/
-外部重定向所需的斜杠前缀。$0
是与RewriteRule
* 模式 * 匹配的URL路径的反向引用。在本例中为url.php
。?
-分隔查询字符串的开头%1
-保存前一个 * CondPattern * 中第一个捕获组(括号中的子模式)的值。即,格式为date=NNNN-
的字符串0
-文字零。%2
-保存前一个 * CondPattern * 中第二个捕获组的值,即格式为N-NN
的字符串。