ThinkPHP3.2.2中开启REWRITE模式

1、

在项目配置文件(ApplicationCommonConfconfig.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模式进行访问了。

---转发并完善

原文地址:https://www.cnblogs.com/jin3350/p/6410442.html