Nginx伪静态设置
伪静态就是地址栏上看着是 .html 结尾的静态页,实际还是 PHP 在跑。目的就俩:链接好看着、搜索引擎好收录,文件并没有真生成。
Nginx 上做伪静态靠 rewrite 和 try_files 两条指令。用小皮面板的话,网站 - 管理 - 伪静态,直接选 WordPress、ThinkPHP 这类模板,规则就自动填好了,省得手写。
# 把 /article/123.html 转成 article.php?id=123
rewrite ^/article/(\d+)\.html$ /article.php?id=$1 last;
# 框架通用写法:找不到真实文件就交给 index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}
规则改完必须重载 Nginx,不重载等于没改。last 是重新匹配一遍,break 是就地停住,普通伪静态用 last 就够。
Apache 那边是写在 .htaccess 里的 RewriteRule,思路一模一样。区别是 Nginx 不认 .htaccess,只能写进配置文件里再重载。
说点什么 0