php – mod_rewrite最佳实践

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – mod_rewrite最佳实践脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_2@
所以我刚开始搞乱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 =第一.我在这里是正确的轨道还是我错过了什么?任何有用的建议将不胜感激,谢谢.

解决方法

你走在正确的轨道上.你在这里做的事情没有错.当然,你必须调整一些东西,但总的来说,你是在正确的轨道上.您可能希望拥有为您生成链接的某些内容,某种映射或其他内容.所以“第一个”并映射到“views / firstPageView.PHP”.然后,您可以在index.PHP中使用它来处理路由以及生成链接.因此,如果“first”之类的内容变为“something_else”,则无需手动转到所有模板并进行更改.

此外,您有mod_rewrite规则处理可能的尾部斜杠.由于尾部斜杠,可以弹出很多随机性.当mod_dir认为请求是针对目录时,Apache将301将缺少尾部斜杠的URL重定向到包含尾部斜杠的URL.您可能希望使所有链接都具有尾部斜杠以避免这种情况.此外,如果您有一个尾部斜杠,相对链接如< a href =“first”> First Page< / a>可能会停止工作,因为URI基础现在是/ first /而不是/.

@H_404_2@

脚本宝典总结

以上是脚本宝典为你收集整理的php – mod_rewrite最佳实践全部内容,希望文章能够帮你解决php – mod_rewrite最佳实践所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。