phpStudy V8 使用手册 / 伪静态的配置方法

伪静态的配置方法

伪静态的本质, 是通过重写动态的URL地址, 去掉问号等字符,使URL地址在搜索引擎面前看上去像是一个静态地址


1. 什么是静态网页

  • 所谓静态网站, 就是真实存在于Web服务器上的html文档

  • 用户访问时, 只需要在浏览器地址栏输入这个文档的完整URL地址就可以

  • 静态网页,非常有利于SEO优化, 对于网站的收录和排名非常有利

例如: https://www.test.com/news/20190920/adout.html

2. 什么是动态网页

  • 所谓动态网页, 是指网页中的数据是动态生成的, 通常是来自数据库

  • 这些数据,只有当存在用户请求时, 数据才会与页面结构结合,动态生成一个完整页面返回给用户

  • 这类网站最典型的特征,就是URL地址是动态生成的

类似这样: https://www.test.com?m=home&c=user&m=list&id=18

  • 这样的URL地址, 搜索引擎认为是临时的, 不会主动收录的, 不利于SEO优化

  • 并且,这样的地址, 对于用户来说也是不友好的, 非常的长,没有规律,总在变化

  • 但是, 动态网页, 却可以让用户总是可能获取到最新的信息, 并且可以实现交互,这是静态网页实现不了的

  • 所以, 大家迫切希望有一种技术, 将静态网页的优势移植到动态网页上, 于是: 伪静态技术就诞生了

3. 伪静态的实现

  • 伪静态的本质, 是通过重写动态的URL地址, 去掉问号等字符,使URL地址在搜索引擎面前看上去像是一个静态地址

  • Apache服务器, 实现伪静态的功能非常强大, 并且配置也非常的简单

  • Apache是通过启动rewrite(重写)模块来实现伪静态的

4. Apache伪静态

4.1 更新Apache配置文件

  • httpd.conf: 启用rewrite模块,LoadModule rewrite_module modules/mod_rewrite.so

启用rewrite模块

  • vhost.conf: 更新AllowOverride None, 改为 AllowOverride All

更新AllowOverride

4.2 .htaccess

如果你没有修改服务器配置的权限, 可以在需要URL重写的目录创建一个.htaccess文档

下面是一个简单的小案例, 我们在浏览器地址栏输入: index.html, 实际上访问的是动态页面index.php

# 启动rewrite引擎
RewriteEngine on
# 将index.html 映射到 index.php
RewriteRule ^index.html$ /index.php
ThinkPHP5.1的.htaccess
<IfModule mod_rewrite.c>
  # 符号链接,也称为符号链接或软链接, 最类似于Windows快捷方式, 没它可能403错误
  Options +FollowSymlinks -Multiviews
  RewriteEngine On
  # 如果不是目录, 如果不是文件, 才将URL交给下一条规则处理
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>