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中如何开启伪静态,以及如何在服务器中具体配置。希望对大家有所帮助。

后端开发标签