Nginx伪静态配置和常用Rewrite伪静态规则集锦

Nginx伪静态配置主要是通过Rewrite规则来实现的,这里总结些常用的Rewrite规则:

1. 隐藏index.php

rewrite ^/index\.php(.*)$ /$1 last;

2. 移除末尾的html后缀

rewrite ^/(.+)\.html$ /$1 last;

3. 目录结尾加斜杠

rewrite ^/(\w+[^/])/$ /$1/ permanent;

4. 强制添加www

server_name xxx.com;
rewrite ^(.*)$ http://www.xxx.com$1 permanent; 

5. https跳转

server {
  listen 80;
  return 301 https://$host$request_uri; 
}

6. ERR_TOO_MANY_REDIRECTS 问题

if ($http_referer ~* (.+)/$ ){
    set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
    rewrite ^/(.*)$ /$1 permanent;
}

开启伪静态还需要在nginx.conf中设置:

server {
  ...
  
  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }
  
  ...
}

以上是Nginx中伪静态配置的基本方法和常用Rewrite规则,可以组合使用实现复杂的URLrewrite。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论