我希望达到以下目的:http://example.com/year/month/day而不是http://example.com?year=yyyy&month=mm&day=dd
我希望它仅在匹配仅为数字,第一段(年)为4位数,第2段月份为01至12(月份的月份),最后一段(日期)时重写)是在01 - 31(一个月中的几天)之间。
请问我该如何实现这个目标
答案 0 :(得分:3)
我认为应检查脚本中的月份和日期编号。但这里是regexp。
更新为将单个数字日或月与可选的尾部斜杠匹配。
RewriteRule ^(\d{4})/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])/?$ ?y=$1&m=$2&d=$3
仅适用于年份和月份,可选的尾部斜杠。
RewriteRule ^(\d{4})/(0?[1-9]|1[0-2])/?$ ?y=$1&m=$2
答案 1 :(得分:2)
我能想到的最好的是:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d{4})/(0[1-9]|10|11|12)/(0[1-9]|[12][0-9]|3[01])/?$ index.php?y=$1&m=$2&d=$3 [L]