热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于thinkphp中的重写规则

我们知道,在thinkphp的案例中有一个.htaccess文件,里面配置了URL的一些重写规则,如:RewriteEngineonRewriteCond%{REQUEST_FILENAME}!-dRewr...

我们知道,在thinkphp的案例中有一个.htaccess文件,里面配置了URL的一些重写规则,如:

  1. RewriteEngine on 
  2. RewriteCond %{REQUEST_FILENAME} !-d 
  3. RewriteCond %{REQUEST_FILENAME} !-f 
  4. RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 

它的作用就是设置URL重写以隐藏URL中含有的index.php,一般来说URL过长或者动态化的URL都不利于SEO因此隐藏的目的就是要达到更好的SEO效果.

明白了.htaccess文件的作用,接下来就是让它工作起来,要使.htaccess文件起作用,通常需要服务器开启URL_REWRITE模块才能支持.

下面是Apache的配置过程:

1、httpd.conf配置文件中加载了mod_rewrite.so模块

在httpd.conf配置文件搜索 LoadModule rewrite_module modules/mod_rewrite.so (Apache2是这个)去掉前面的#

2、AllowOverride None 将None改为 All

在httpd.conf配置文件找到“AllowOverride None”将None改为 All。这点值得注意的是,“AllowOverride None”在文件中能找到几处,但要改的却只有一处,如图所示:

\

在本地学习实践,不管是安装集成服务器环境如wampserver或者独立安装(Apache+php+mysql分别下载安装)都可以按照上面的步骤操作。

如果您的网站放到虚拟服务器上,您对网站内容所在的服务器没有管理员权限,或者您的网站内容放在ISP的服务器上托管,无法改写主配置文件httpd.conf,怎么办呢?一般来说主配置文件httpd.conf已经开启了mod_rewrite.so模块,您要做的就是在您的网站空间找到httpd.conf文件(不是主配置文件,里面的配置只对您的网站起作用),并把“AllowOverride All”写到其中.


推荐阅读
author-avatar
手机用户2502863361
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有