伪静态配置完整教程(Nginx + Apache双版本)
2026-09-11 本站作者 【 字体:大 中 小 】
网站做伪静态属于SEO的基础操作。动态URL包含很多参数(例如 article.php?id=123),搜索引擎可以抓取但用户体验不好。伪静态后URL变成 article/123.html,更简洁,对搜索引擎和用户都有好处。本文介绍Nginx和Apache两种环境下的伪静态配置方法。
为什么要做伪静态
伪静态的作用不可以省略:
对SEO:静态化URL更短更清晰,搜索引擎抓取和收录更稳定。动态URL参数过多可能导致重复收录(同一个页面多个参数版本),伪静态后URL统一。
对用户:/seo/123.html 比 /index.php?m=article&id=123 好看好记,地址栏里看到的路径更有信任感。
对分享:伪静态URL在微信、QQ里分享时更整洁,点击率也比动态URL高。
Apache环境伪静态配置
Apache用 .htaccess 文件做伪静态,操作比较简单。在网站根目录创建或编辑 .htaccess 文件。
步骤一:开启Rewrite模块。在Apache配置文件中确认 LoadModule rewrite_module modules/mod_rewrite.so 这行没有被注释(前面没有#号)。宝塔面板里Apache默认开启了。
步骤二:允许.htaccess覆盖。在Apache虚拟主机配置中确认 AllowOverride All 。如果显示 AllowOverride None,改成 All 后重启Apache。
步骤三:写伪静态规则。在网站根目录的 .htaccess 文件中写入规则。以下是常见CMS的Apache伪静态规则示例:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
这几行的意思是:开启Rewrite引擎,如果请求的路径不是已存在的目录或文件,就把请求转发给 index.php 处理。
WordPress的Apache伪静态规则略有不同:
RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]
步骤四:在CMS后台开启伪静态。在后台"系统设置→SEO设置"里把URL模式选为"伪静态"。WordPress在"设置→固定链接"里选择"自定义结构",填入 /%post_id%.html 。
步骤五:测试。刷新网站首页,随便点一篇文章,看地址栏URL是否变成了.html结尾。如果显示404,说明规则没生效,检查步骤一和步骤二。
Nginx环境伪静态配置
Nginx不用 .htaccess 文件,伪静态规则写在Nginx的配置文件里。宝塔面板在"网站→设置→伪静态"里可以直接填规则。
步骤一:找到Nginx配置文件。宝塔面板路径:/www/server/panel/vhost/nginx/你的域名.conf。如果不用宝塔,通常在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/ 下。
步骤二:在server块里加伪静态规则。常见CMS的Nginx伪静态规则示例:
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }}
WordPress的Nginx伪静态规则:
location / { try_files $uri $uri/ /index.php?$args;}
步骤三:重载Nginx。宝塔面板里点"重载配置"。命令行操作: nginx -t 测试配置语法, nginx -s reload 重载。如果改了配置但没重载,规则不会生效。
步骤四:在CMS后台开启伪静态。和Apache一样,后台SEO设置里选伪静态模式,WordPress固定链接里设置自定义结构。
步骤五:测试。刷新网站,点文章看URL是否变.html。如果首页正常但内页404,说明伪静态规则没写对。
伪静态URL规则设置
在后台"系统设置→SEO设置"里有URL规则配置,可以自定义各种页面的URL格式:
文章页URL:建议设为 {listdir}/{aid}.html ,生成的URL类似 /seo/123.html ,层级浅、路径清晰。
栏目页URL:建议设为 {listdir}/index.html ,生成的URL类似 /seo/index.html 。
标签页URL:建议设为 tags/{tid}.html ,生成的URL类似 /tags/5.html 。
设置完URL规则后记得清空网站缓存,在后台"工具→清空缓存"里操作。否则旧URL可能还在缓存里。
常见错误排查
错误一:首页正常,内页404。伪静态规则没写对或没生效。Apache检查 .htaccess 是否在根目录、AllowOverride是否为All。Nginx检查规则是否在正确的server块里、是否重载了配置。
错误二:首页和内页都404。Nginx的root路径指向错了。检查Nginx配置里 root 指令指向的路径是不是网站实际根目录。宝塔面板里检查"网站目录"设置。
错误三:伪静态后CSS和JS失效。伪静态规则把静态资源(css、js、图片)也转发给PHP处理了。在伪静态规则前加一段排除静态资源的条件:
Nginx写法:location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$ { expires 30d; } 放在 location / 之前。
Apache写法:RewriteCond %{REQUEST_FILENAME} !\.(css|js|gif|jpg|png|jpeg|bmp|swf)$ 加在RewriteRule之前。
错误四:规则写了对但不生效。Apache可能是 .htaccess 没有读取权限,把文件权限改成644。Nginx可能是配置文件没被include,检查 nginx.conf 里是否include了你的配置文件。
错误五:后台打不开。伪静态规则把后台路径也转发了。在伪静态规则里加排除后台路径的条件。后台通常在 /admin.php 或 /login.php,规则里加 RewriteCond 排除这些路径。
伪静态后要做的3件事
事项一:更新sitemap。伪静态后URL全变了,在CMS后台重新生成sitemap.xml,然后到百度搜索资源平台重新提交。
事项二:提交404死链。旧动态URL伪静态后变成了404,把这些旧URL整理成死链列表提交到百度。后台有死链收集功能,开启后会自动记录404URL。
事项三:检查robots.txt。确认robots.txt里的sitemap地址是新的伪静态路径。如果之前Disallow了动态参数路径,伪静态后不需要了。
伪静态还是真静态
伪静态和生成纯静态HTML哪个好?
伪静态:URL看起来是.html,但实际还是PHP动态生成的。优点是内容实时更新,不用手动生成。缺点是每次访问都要经过PHP处理,服务器压力大一点。
真静态:直接生成.html文件存在服务器上,访问时不需要PHP处理。优点是速度快、服务器压力小。缺点是每次更新内容都要重新生成,文章多了生成慢。
个人站长用伪静态就够了。日均IP上万或者服务器配置低的,可以考虑真静态减轻压力。
——老吴SEO,专注搜索引擎优化与建站实操。更多内容访问 laowuseo.com
猜你喜欢
公司seo营销策划方案
817
公司网站关键字SEO优化营销策划方案
654
企业网站SEO方案规划
911
公司网站关键字SEO优化如何做
905
企业网站关键字SEO优化营销策划方案
692
企业网站SEO优化方案策划
749
中小企业关键字SEO怎么做
635
新网站上线后 SEO 基础优化操作流程
998
中小企业关键字SEO如何做
836
中小企业关键字SEO优化方案规划
857 