所以我刚开始搞乱 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 中显示为 domain.com/first 而不是 domain。 com/?id=first。那么我是在正确的轨道上还是我错过了什么?任何有用的建议将不胜感激,谢谢。