Nginx / Apache 访问目录自动加斜杠 伪静态规则
我们要达到的目的
访问http://www.zhuxianfei.com/new 的时候 浏览器自动跳转到 http://www.zhuxianfei.com/new/
因为本站是用的静态目录,生成了静态的索引文件index.html
所以默认就是这样自动跳转的
如果你是一个用伪静态来做目录的时候,是有没有后面的斜杠都可以直接访问而不会跳转的
这个用过wordpress的都深有体会
如果我们访问:
http://zhuxianfei.com/wp-admin
注意后面没有斜杠的时候是可以打开的
但是如果再点其他的链接,那么目录引用的层级就会有问题,这时候我们需要加上一个自动加斜杠的机制。
解决方案
在伪静态配置文件中里加入如下代码
if (-d $request_filename) { rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent; }
这样再对http://zhuxianfei.com/wp-admin请求,nginx 就会进行判断了,如果请求的是一个文件夹,会自动在最后加上/
符号,如果请求的是一个文件,则不会改变原有url
接下来对这段代码进行一个解释
if (-d $request_filename)
,如果请求的是一个文件夹,则为真,进到if语句中执行rewrite: 执行url重写
^/(.*)([^/])$
表示以/
符号开始并紧跟着任何字符,同时不是以/
为结束的字符串http://$host/$1$2/ 表示的重写后的地址,$host是请求的域名,注意为了匹配最后一个字符不为
/
,最后一个字符会被分开,被 $2 捕获,将 $1$2 拼起来就是原来完整的字符串;permanent 表示使用 301 响应码返回永久重定向。
============================================================
下面是Apache的实现方法
在伪静态规则里加上
RewriteEngine On RewriteCond %{REQUEST_URI} !^/(.*)/ RewriteRule ^(.*)$ $1/ [L,R=301]
相关文章
- 今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
docker 启动elasticsearch镜像,挂载目录后报错的解决
这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20- 这篇文章主要介绍了idea out目录与target目录的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-08
详解nginx同一端口监听多个域名和同时监听http与https
这篇文章主要介绍了详解nginx同一端口监听多个域名和同时监听http与https的相关资料,需要的朋友可以参考下...2017-07-06- 今天小编大家分享一篇C#获得程序的根目录以及判断文件是否存在的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 刚来公司上班的时候,看到以前的程序员写的程序里面调用http地址是,不是用http而是用双斜杠//开头,刚开始不知道这样写有什么好处,虽然能够正常浏览,后来在网上找了资料,才发...2016-09-20
- 这篇文章主要介绍了正则表达式中两个反斜杠的匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
- 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存...2015-11-08
- 这篇文章主要介绍了Nginx根据不同浏览器语言配置页面跳转的方法,包括一个简体繁体的基本判断方法及实际根据中英文跳转的例子,需要的朋友可以参考下...2016-05-22
- 这篇文章介绍的是一个小技巧来获取node.js项目根目录,这个技巧非常实用。有需要的朋友们可以参考借鉴,下面来一起看看吧。...2016-10-02
- 这篇文章主要介绍了python import 上级目录的导入,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 这篇文章主要介绍了解决docker挂载的目录无法读写问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-19
- 周一今天给大家分享shell脚本多实例部署nginx的详细教程,文章通过实例代码脚本给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-10-26
- 这篇文章主要介绍了Nginx中配置过滤爬虫的User-Agent的简单方法,文中罗列了一些常用搜索引擎的爬虫名称以免造成不必要的过滤,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了C++递归删除一个目录的实现方法,涉及到目录的操作及递归算法的应用,需要的朋友可以参考下...2020-04-25
- 本文主要列举出C#文件和目录操作的一些方法,包括创建、移动、遍历目录,读写文件等方法,有需要的小伙伴可以学习一下。...2020-06-25
- 这篇文章主要介绍了bat删除邪恶文件之畸形文件与畸形目录的方法,这些都是黑客留得后门等文件或目录,需要删除,一般直接删除就不行的,需要下面的命令或软件,下面脚本之家小编就为大家分享一下方法,需要的朋友可以参考下...2020-08-28
- 本篇文章是对C#中如何删除文件目录或文件的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
- php文件夹操作函数string basename ( string path [, string suffix] )给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。...2013-09-11