一、什么是伪静态?
伪静态,又称为动态页面的静态化处理,是指将动态网页的URL转换为静态的HTML文件链接,使其看起来像是一个静态页面,伪静态可以提高网站的访问速度,增强搜索引擎的收录效果,同时也可以避免一些潜在的安全风险。
二、为什么要开启伪静态?
1、提高访问速度:伪静态页面不需要每次请求时都去解析服务器上的PHP脚本,而是直接从硬盘读取HTML文件,大大减少了服务器的负担,提高了访问速度。
2、增强搜索引擎收录效果:搜索引擎更喜欢抓取静态页面,因为它们没有执行脚本的能力,开启伪静态后,可以使搜索引擎更容易抓取和索引网站内容,提高网站的搜索排名。
3、避免安全风险:伪静态可以有效防止一些常见的黑客攻击,如SQL注入、跨站脚本攻击等。
4、方便维护:伪静态页面不需要使用数据库连接,只需要修改文本内容即可,便于网站的维护和更新。
三、如何开启伪静态?
以Nginx服务器为例,可以通过以下步骤开启伪静态:
1、打开Nginx配置文件(通常位于/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf):
sudo vim /etc/nginx/nginx.conf
或
sudo vim /usr/local/nginx/conf/nginx.conf
2、在http块中添加如下配置:
server { ... location ~ .php$ { fastcgi_pass 127.0.0.1:9000; # 根据实际情况修改FastCGI端口号 fastcgi_index index.php; # 设置默认首页文件名 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 将SCRIPT_NAME变量传给PHP环境变量 include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # 根据实际情况修改PHP-FPM套接字文件路径 fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param HTTP_USER_AGENT $http_user_agent; fastcgi_param HTTP_REFERER $http_referer; fastcgi_param HTTP_HOST $http_host; fastcgi_param TIME_OUT 600; # 设置超时时间,单位为秒 } }
3、在server块中的location ~ .php$部分添加如下配置:
location ~ .php$ { try_files $uri =404; # 如果找不到对应的文件,返回404错误页面 }
4、在server块中的location ~ .php$部分添加如下配置:
location ~ .(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; #关闭日志记录功能,避免日志过载导致性能下降 log_not_found off; #关闭404错误日志记录功能,避免日志过载导致性能下降 expires max; #设置缓存过期时间,单位为秒,可以根据实际情况调整值 add_header Pragma public; #设置响应头的Pragma字段为public,允许浏览器缓存资源 add_header Expires 'access plus one month'; #设置响应头的Expires字段为access plus one month,表示资源将在一个月后过期(根据实际情况调整值) }
5、在http块中添加如下配置:
error_page 404 /404.html; #设置自定义404错误页面的路径和文件名(根据实际情况修改) error_page 500 "502 Bad Gateway" @backend; #设置自定义500错误页面的路径和文件名(根据实际情况修改),并指定跳转到名为backend的location块(根据实际情况修改) location = @backend { #定义名为backend的location块(根据实际情况修改) internal; #禁止外部访问此location块(根据实际情况修改) proxy_pass http://127.0.0.1:8080; #将请求转发到名为backend的内部代理服务器(根据实际情况修改) proxy_set_header Host $host; #设置请求头中的Host字段为当前请求的Host字段(根据实际情况修改) proxy_set_header X-Real-IP $remote_addr; #设置请求头中的X-Real-IP字段为当前请求的Remote-Addr字段(根据实际情况修改) }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/90209.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复