【发布时间】:2017-08-17 15:02:57
【问题描述】:
我有一个名为 names.php 的页面,它按年份列出了最受欢迎的名字。
主菜单链接为 www.example.com/most-popular-names/2017,因为它是当年。
那个“干净”的 URL 通过 .htaccess 被重定向到这个规则:
RewriteRule ^/?most-popular-names/([^/]+)/?$ /names.php?year=$1 [L,QSA]
这一切都很好。但是,如果有人去:
www.example.com/most-popular-names (with no year specified)
进入 404 页面。它不应该仍然转到names.php吗?在 names.php 上,我有下面的代码,如果没有设置年份,则使用当前年份,但它是 404,所以我认为它根本不会到达 names.php。
$currentyear=date('Y');
if (!isset($_GET['year'])) { //if not set for some reason, default to current year
$theyear=$currentyear;
} else {
$theyear=$_GET['year'];
}
是否有更好/不同的方法来编写重写规则来处理这种情况?我可以添加一个单独的重写规则来处理可能的“无年份”URL,但这对我来说似乎是错误的/效率低下。
【问题讨论】: