ThinkPHP3.2.2中开启REWRITE模式
1、
在项目配置文件(\Application\Common\Conf\config.php)中配置URL模式
1 <?php 2 return array( 3 //URL模式 4 'URL_MODEL' => 2,
5 'URL_ROUTER_ON' => true,//默认fllse, // 是否开启URL路由
6 );
添加.htaccess文件 内容如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.PHP/$1 [QSA,PT,L]
</IfModule>
要是想隐藏admin.php后台入口的, 要加上下面这几行
RewriteRule admin$ ./admin.php [NC,L]
RewriteRule admin/$ ./admin.php [NC,L]
RewriteRule admin/(.*)$ admin.php/$1 [NC,QSA,PT,L]
最后变成
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
RewriteRule admin$ ./admin.php [NC,L]
RewriteRule admin/$ ./admin.php [NC,L]
RewriteRule admin/(.*)$ admin.php/$1 [NC,QSA,PT,L]
</IfModule>
2、
在ThinkPHP的URL模式中,REWRITE模式去掉了URL地址中的入口文件index.php,但是需要额外配置Web服务器的重写规则才能正确访问。
Apache服务器可以通过开启rewrite模块和分布式配置文件(.htaccess)的支持以实现ThinkPHP中的REWRITE模式。具体步骤如下:
1.打开Apache配置文件(httpd.conf),将加载rewrite模块的指令取消注释:
1 LoadModule rewrite_module modules/mod_rewrite.so
2.修改目录权限,启用分布式配置文件:
1 <Directory /> 2 Options FollowSymLinks 3 AllowOverride All 4 Order deny,allow 5 Allow from all 6 </Directory>
在上面代码中 AllowOverride All 表示启用分布式配置文件。
ThinkPHP中自带的 .htaccess 文件中已经写好了URL重写规则,通过上述配置后,就可以使用REWRITE模式进行访问了。
---转发并完善