我正在尝试找出如何在 htaccess 中使用可选部分编写 rewriterule。通常我有这个:
RewriteRule ^([a-z\-]+)/([A-Za-z\-]+)/([A-Za-z\-]+)/([0-9]+)/([0-9]+)/([0-9]+)\-([A-Za-z0-9\-]+)$ /system.php?lang=$1&category=$2&subcategory=$3&year=$4&month=$5&id=$6&title=$7 [QSA,L]
如果我有地址,它可以正常工作,例如
http://dev.example.com/en/blog/usa/2013/9/1-title-of-post
结果是:
$_GET["lang"]="en";
$_GET["category"]="blog";
$_GET["subcategory"]="usa";
$_GET["year"]=2013;
$_GET["month"]=9;
$_GET["id"]=1;
$_GET["title"]="title-of-post";
但有时我只想使用如下地址:
http://dev.example.com/en/about/me
我想要这个:(我的意思是不定义其他值,但服务器找到那个地址)
$_GET["lang"]="en";
$_GET["category"]="about";
$_GET["subcategory"]="me";
$_GET["year"]=null;
$_GET["month"]=null;
$_GET["id"]=null;
$_GET["title"]=null;
所以我想要以年份开头的可选部分,但如果有人用年份和其他陈述写地址,我想接受它。
谢谢你的帮助!