我刚刚开始尝试使用Apache的重写模块,并希望确认我是否正确,因为我看到有几种不同的方法。我的示例代码只是一个实验,但它可能最终成为我正在开发的新项目的基本结构。
这是我的.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_\-]+)/?$ index.php?id=$1 [L,NC]
</IfModule>
我的索引文件:
<?php
include 'views/headerView.php';
switch(strtolower($_GET['id']))
{
case "first": include 'views/firstPageView.php';
break;
case "second": include 'views/secondPageView.php';
break;
default: include 'views/homeView.php';
}
include 'views/footerView.php';
?>
默认的homeView模板:
<p>This is the home page.</p>
<p>To the first page. <a href="first">First Page</a></p>
<p>To the second page. <a href="second">Second Page</a></p>
我的主要关注点是在模板中的锚标签中只有"url"为"first"和"second"。这些url在索引文件中的切换中用于确定要显示哪个视图。我这样做是为了当用户点击链接时,重写模块的反向引用中会使用单词"first"或"second",并会出现在URL中,如domain.com/first而不是domain.com/?id=first。所以我是否走在正确的道路上,还是我漏掉了什么?任何有帮助的建议将不胜感激,谢谢。