Nginx 是一个高性能的 HTTP 和反向代理服务器,广泛用于 Web 服务,伪静态配置是指通过 Nginx 的配置实现 URL 重写,使得用户访问的 URL 看起来更友好,而实际上可能指向不同的文件或脚本。
以下是一些常用的 Nginx 伪静态配置和 Rewrite 规则集锦:
基本伪静态配置
1、将/index.php?id=123
重写为/123
location / { rewrite ^/(\d+)$ /index.php?id=$1 last; }
2、将/category/123
重写为/category.php?id=123
location /category/ { rewrite ^/category/(\d+)$ /category.php?id=$1 last; }
3、将/user/profile
重写为/user.php?action=profile
location /user/ { rewrite ^/user/(.*)$ /user.php?action=$1 last; }
常用 Rewrite 伪静态规则集锦
1、去除 URL 中的www
前缀
server { server_name www.example.com; return 301 $scheme://example.com$request_uri; }
2、将所有请求重定向到 HTTPS
server { listen 80; server_name example.com; return 301 https://$server_name$request_uri; }
3、将/oldpage
重定向到/newpage
location = /oldpage { return 301 /newpage; }
4、将/olddirectory/
重定向到/newdirectory/
location /olddirectory/ { return 301 /newdirectory/; }
5、将/file.html
重定向到/newfile.html
location = /file.html { return 301 /newfile.html; }
6、将/oldscript.php
重写为/newscript.php
location = /oldscript.php { rewrite ^ /newscript.php last; }
7、将/articles/2023/title
重写为/article.php?year=2023&title=title
location /articles/ { rewrite ^/articles/(\d{4})/(.*)$ /article.php?year=$1&title=$2 last; }
8、将/search?q=keyword
重写为/search/keyword
location /search { rewrite ^/search\?q=(.*)$ /search/$1 last; }
9、将/category/subcategory
重写为/category.php?subcategory=subcategory
location /category/ { rewrite ^/category/(.*)$ /category.php?subcategory=$1 last; }
10、将/user/profile
重写为/user.php?action=profile
location /user/ { rewrite ^/user/(.*)$ /user.php?action=$1 last; }
注意事项
last
表示完成重写后停止处理后续的 rewrite 指令。
break
表示完成重写后继续处理后续的 rewrite 指令。
redirect
表示返回临时重定向(HTTP 302)。
permanent
表示返回永久重定向(HTTP 301)。
这些规则可以根据具体需求进行调整和扩展,希望这些示例对你有所帮助!