zblog分类目录url不带斜杠301重定向到带斜杠

 2022-12-30    3422  

通常情况下,url在末尾处是否加上斜杠“/”,对用户访问是没有太大影响的,大多数的Web 服务器均能正确解析,在传统意义上说,url末尾是没有反斜杠的,有没有反斜杠的意义在于该 url 是指向一个文件还是一个目录,举个例子:

https://blog.lingruofeng.com/ls/

https://blog.lingruofeng.com/ls

url末尾带斜杠 / 的是指向目录/ls/,不带的是文件/ls,是两个不同的地址,一般来说,索引页面(如文章列表或分类)作为网站目录,而内容页面作为文件。

对于服务器来说,如果访问目录,则会根据规则访问该目录下的默认文件(index.html、index.htm、index.php之类)。如:访问/theme/服务器会寻找/theme/index.html文件,而访问/theme服务器则会寻找/theme文件,如果没有查询到该目录下的文件时,有可能导致web服务器不能正确解析而出现返回404 错误,这时就要对链接进行定向处理让目录统一加上斜杠访问。

zblog网站目录链接统一加斜杠的方法:

1.Nginx:

if (!-f $request_filename){
rewrite ^/([^\.]+[^/])$ $scheme://$host/$1$2/ permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

2.Apache .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+[^/])$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

在规则中加上以上代码即可给目录自动加上斜杠访问,防止出现404错误问题。

分享到:

本文链接:https://blog.lingruofeng.com/seo/47.html

版权声明:本站部分素材来自网络整理,如侵犯了您的合法权益,请联系我们删除!