沐鸣新闻58255957_Thinkphp在各种服务器下的伪静态配置

www.pptschool.com 沐鸣官方登录 2022-05-19 52 次浏览 没有评论

当一个Thinkphp网站做好要上线时,就需要先配置服务器,因为Thinkphp的网站一般需要支持伪静态,也有需要支持URL重写,就是可以自定义URL,这个有利于做百度等搜索引擎的收录。这里介绍几种比较常见的运行服务器,如IIS,apache和nginx这三种运行环境下的伪静态该如果配置。

首先是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;

           

}

}

这样就可以支持英文版的伪静态了。

回顶部