ThinkPHP隐藏Url的index.php_ThinkPHP重写规则
2017-07-26 13:31:47  By: dwtedx

相信大家平时在使用ThinkPHP的时候肯定会觉得index.php包含在url里面很不爽、今天就跟大家讲解一下怎么隐藏index.php、想要达成的效果很简单、就是在url里面去掉index.php、我有两个模块、Home、Wechat


http://localhost/index.php/home/index/index 缩短为: http://localhost/index/index 

http://localhost/index.php/wechat/index/index 缩短为: http://localhost/wechat/index/index


隐藏index.php、这个比较简单、我开启.htaccess的支持就行、具体配置自行百度吧、我用的是apache2、建立一个软连接就成

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load


重启服务、然后、什么都不用做、index.php就被隐藏了

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>


这就是ThinkPHP默认的.htaccess文件内容、可以看到、index.php已经可以被省略了、然后就是home的隐藏、如果我们直接在.htaccess文件中写上home、那么、其他的模块我们就无法访问了、就只有使用thinkphp提供的机制了

这里说法就很多了、但我发现、大多都直说了一部分、都没人说完整的、我的做法是这样的

在Common/Conf/config.php中加入配置

´DEFAULT_MODULE´ => ´Home´,
´MODULE_ALLOW_LIST´ => array(´Home´,´Wechat´)


其中‘MODULE_ALLOW_LIST’的值是你所有允许访问的模块名、只有写在这里面的模块才能被访问、  最后、很多人说的在index.php中加入

define(´BIND_MODULE´,´Home´);


不建议这样这、这样的配置、你的项目就只有Home模块能被访问了、如果有多个模块呢???难道使用?m=&c=&a=这种丑陋的形式??

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+