说说nginx的rewrite,去掉url中的index.php

42
0
0
2024-09-16 11:02

在网站访问中,经常会有index.php在网页中,然后搜索引擎会认为是重复的网页,对网站索引不是很好,比如:

https://www.leyeah.com/index.php/it/laravel

其实我这个网站是因为之前的一个bug导致,大量带有index.php的页面被搜索引擎收录,定时搜索引擎会发邮件给你,告诉你有大量重复的网页,其实我们只需要在nginx加上一条rewrite规则,将他们重定向至新的网页即可,在写规则之前,我们得了解下nginx rewrite的基本知识。

last      – 基本上都用这个Flag,浏览器网址不跳转
break     – 中止Rewirte,不在继续匹配,浏览器网址不跳转
redirect  – 返回临时重定向的HTTP状态302,浏览器网址跳转到新网页
permanent – 返回永久重定向的HTTP状态301,浏览器网址跳转到新网页

所以我们这种情况,显然应该用permanent,在nginx server配置里加上这么一行即可。

server {
....
    rewrite ^/index\.php/(.*) https://www.leyeah.com/$1 permanent;
...
}

所有带有index.php的网页就会自动重定向到不带有index.php一样的页面,如下图:

博主信息
博客数
157
昵称
性别
年龄
39
居住城市
上海市