thinkphp伪静态怎么实现

一、为什么需要伪静态

网页的url地址在不同的网站中采用的方式会有所不同。一般情况我们的URL是这样的:`http://www.abc.com/index.php?module=article&id=10` ,这种方式我称之为拉式传递(传递参数的方式),当访问网站时,有一个php文件接收你传递的参数,然后去数据库中取回数据,再把一个页面返回给浏览器。

然而,这种方式的URL不利于SEO的优化,也让人看起来很不舒服。而伪静态能够处理这个问题,使得我们的URL地址看起来更加美观。

二、thinkphp伪静态

1. 开启伪静态

首先,在thinkphp的应用中开启伪静态,需要在应用的配置文件中开启,打开文件位于`application/config.php`,将`url_html_suffix`配置项的值设置为`.html`:

```php

'view_replace_str' => [

'__PUBLIC__'=>'/public',

'__STATIC__'=> '/static',

],

'url_html_suffix' => 'html',

```

这样,你的URL就会变成: 这种方式,URL已经变得更加的美观。

2. 配置伪静态规则

接下来,你需要在服务器上对你的伪静态做出相应的配置。以nginx为例,我们需要在nginx的配置文件中添加相关配置,修改站点的配置文件中,增加以下内容即可:

```nginx

location / {

if (!-e $request_filename) {

rewrite ^/(.*)$ /index.php?s=/$1 last;

break;

}

}

```

这一段配置来自于ThinkPHP官方手册。请仔细阅读并理解其含义。

3. 完整的配置代码

nginx服务器的完整配置代码如下:

```nginx

server {

listen 80;

server_name www.abc.com;

error_log /data/logs/nginx/abc.com-error.log;

root /data/wwwroot/abc.com/public;

index index.html index.php;

location / {

if (!-e $request_filename) {

rewrite ^/(.*)$ /index.php?s=/$1 last;

break;

}

}

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

expires 30d;

}

location ~ .*\.(js|css)?$ {

expires 12h;

}

access_log /data/logs/nginx/abc.com-access.log;

}

```

四、总结

在本文中,我们了解到了为什么需要使用伪静态,以及ThinkPHP中如何开启伪静态,以及如何在服务器中具体配置。希望对大家有所帮助。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签