在mod_rewrite模块安装并启动之后,就可以Apache的配置文件httpd.conf添加重写规则。Apache同时还允许以每个目录为单位,来保存配置的选项。必须要做的所有工作就是在应用程序的各个目录下,创建名为“.htaccess”的文件。当要访问这个目录及其子目录时,Apache将自动读取这个文件。
和mod_rewrite一样.htaccess文件也与PHP没有任何关联。它只是一个严格的Apache配置文件。在随后的练习中,将看到它是如何工作的。
在以下情况中使用“.htaccess”文件将十分有用:
(1)对全局配置文件httpd.conf没有存取权限。
(2)对应用程序的某个特定目录需要进行自定义配置。
(3)需要能够在重启Apache的情况下改变配置选项。在修改httpd.conf文件后将被要求重启Apache,如果这时对WEB服务器上有一些正在运行的其他应用程序,就有可能会产生问题。
在这里所有的练习都被设计为.htaccess文件。在定义重写规则时,这是通常推荐的方法,特别是在开发阶段对规则的更改比较频繁的时候。利用这个方法,在每次修改完重写规则后就可以不用重启Apache。在共享主机环境下,这是定义重写规则的唯一方法,因为对httpd.conf文件没有存取权限,并且无法重启服务器。
在接下来的练习中将创建一个简单的重写规则,将“my-super-product.html”转换为“product.php?product_id=123”。
product.php脚本模拟了一个真实的产品页面。脚本接收一个查询字符串参数product_id,并根据这个参数的值产生一个简单的输出信息。
为了提高对搜索引擎的友好性,需要通过静态URL地址http://seophp.example.com/my-super-product.html访问相同页面。为了实现这个功能,下面将使用mod_rewrite。
从上所述可以知道,mod_rewrite的基本工作就是将一个输入字符串转换为另一个字符串。在这个练习中将“my-super-product.html”重写为“product.php?product_id=123”。