Thinkphp在各种服务器下的伪静态配置
首先是IIS服务器,这种服务器我们可以导入ISAPI_Rewrite伪静态文件,这样可以就可以让IIS支持伪静态,然后创建一个httpd.ini文件,放在根目录,将下面的代码 代码内容如下图:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteRule /(?!Public)(?!include)(?!Uploads)(.*) /index.php\//$1 [L]
上面所提到的Public、include、Uploads是指放置一些静态的文件,如果图片或样式文件或JS文件等的文件夹。
如果使用Apache运行环境的话,如果需要支持伪静态,则需要打开 rewriter_module模块,然后创建一个.htaccess文件放在根目录,然后这个文件的内容直接使用下面的代码:
代码内容如下图所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>
这样一个Thinkphp网站在apache运行环境里就支持伪静态了。如果有英文版或其他的版本,直接把.htaccess文件放在英文版的根目录就可以了。
如果使用的是nginx的运行环境,一般情况下这种环境比较少用,所以对伪静态的配置不是很了解,但目前却用的越来越多了,如果使用宝塔面板的话,配置方法如下图所示:
只要选择Thinkphp,就会自动生成以下代码
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
这样一个Thinkphp在nginx环境下就支持伪静态了,这里是一些比较简单的,如果在该网站里多增加一个英文版本呢?由于中英版本是独立开发的,也就是用了两套Thinkphp程序,所以英文版的伪静态设置如下图所示:
代码内容如下图:
location /en/ {
if (!-e $request_filename){
rewrite ^/en/(.*)$ /index.php?s=$1 last; break;
}
}
这样就可以支持英文版的伪静态了。