首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不使用尾部斜杠的情况下访问目录的index.php,并且不会获得301重定向(NGinx)

在NGinx中,要在不使用尾部斜杠的情况下访问目录的index.php,并且不获得301重定向,可以通过修改NGinx的配置文件实现。

首先,需要打开NGinx的配置文件,一般位于/etc/nginx/nginx.conf。找到server块,其中包含了网站的配置信息。

在server块中,找到location / {},这是网站根目录的配置。在其中添加以下配置:

代码语言:txt
复制
location / {
    try_files $uri $uri/ /index.php?$args;
}

这个配置中使用了try_files指令,它会依次尝试访问URI、URI加上尾部斜杠、以及index.php文件。$args是查询参数,可以将其添加到index.php后面。

保存配置文件后,重新加载NGinx配置:sudo service nginx reload。

现在,当访问一个目录时,NGinx会尝试访问目录下的index.php文件,而不会重定向到带有尾部斜杠的URL。

这种配置可以适用于许多情况,比如使用PHP框架的网站。但请注意,这个配置可能导致其他静态资源无法访问。如果有其他需要特殊处理的情况,请根据实际需求进行配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Nginx - location中匹配规则和动态Proxy

@前缀:为请求重定向定义了一个命名位置,而不是用于常规请求处理。不能嵌套,也不能包含嵌套位置。 匹配指令: ~:执行区分大小写正则表达式匹配。 ~*:执行区分大小写正则表达式匹配。...如果匹配成功,只使用该选项,不再匹配其他选项,通常用于匹配目录。 =:执行精确匹配,即普通字符精确匹配。...特殊处理: 如果位置由以斜杠结尾前缀字符串定义,并且请求由某些指令(proxy_pass)处理,则如果请求URI没有尾部斜杠,则执行永久重定向301)。...(在Nginx中没有if-else这样结构) 在这种情况下,可以使用多个if语句来满足不同条件下处理逻辑。...但需要注意是,if语句是在Nginxrewrite模块中执行并且在性能方面可能会有一些影响。

1.1K00

Nginx06】Nginx学习:HTTP核心模块(三)Location

如果 URI 结构是 https://www.zyblog.com.cn/ 形式,尾部有没有 / 都不会造成重定向。因为浏览器在发起请求时候,默认加上了 / 。...尾部如果缺少 / 将导致重定向。因为根据约定,URL 尾部 / 表示目录,没有 / 表示文件。所以访问 /some-dir/ 时,服务器会自动去该目录下找对应默认文件。...如果访问 /some-dir 的话,服务器会先去找 some-dir 文件,找不到的话会将 some-dir 当成目录301重定向到 /some-dir/ ,去该目录下找默认文件。...路径末尾斜杠访问结果有影响,有斜杠会认定为是目录,客户端不带斜杠访问会404,而没有斜杠配置在客户端访问时会进行301跳转到目录再进行访问 root 目录末尾斜杠和上面测试报错没有关系,将...这里需要注意是,如果配置成目录并且访问目录的话,那么只会找别名目录 index.html 文件。

84350
  • Nginx葵花宝典—草根站长配置Nginx运维百科全书

    匹配path目录后面加上"/",那么访问url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。...如果不加上"/",访问就会失败!5)root目录配置中,location匹配path目录后面带不带"/",都不会影响访问。...一般情况下,在nginx配置中良好习惯是:1)在location /中配置root目录;2)在location /path中配置alias虚拟目录。...url,爬虫不会更新url(因为是临时) permanent – 返回301永久重定向, 地址栏显示重定向url,爬虫更新urllast 和 break 总结如下:1、last 和 break 当出现在...请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递$request_uri值,它可以通过内部重定向,或者使用index指令进行修改,$uri包含主机名,”/foo/bar.html

    83120

    nginx 进行正则匹配(常见正则匹配符号表示)

    今天遇到网站之前url被百度搜索引擎抓取,需要在服务中进行301强制跳转,(访问:www.baidu.com/kenni-1,www.baidu.com/kenni-1/,两个统一跳转到www.baidu.com...page=11,kenni-后面接数字) 因为服务器使用nginx,所以在nginx增加如下配置: # 访问 域名/kenni-10 跳转到域名 域名/kenni-10....3.redirect 返回302临时重定向,浏览器地址会显示跳转后URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后URL地址。...五.NginxRewrite规则编写实例 1.当访问文件和目录不存在时,重定向到某个php文件 if( !...; 这样/shanghai 也可以访问了,但页面中相对链接无法使用.

    34.6K42

    NGINX入门】6.Nginxrewrite规则详解

    内容 2.1 Rewrite规则 rewrite功能就是,使用nginx提供全局变量或自己设置变量,结合正则表达式和标志位实现url重写以及重定向。...rewrite只能放在server{}, location{}, if{}中,并且只能对域名后边除去传递参数外字符串起作用,例如 http://seanlook.com/a/we/index.php...,permanent会返回带有301代码永久重定向。...,浏览器会重新定向到这个网址, 当我们再次访问http://walidream.com/wali,这个时候浏览器根本不会在经过nginx,而是直接有浏览器重定向到这个网址。...arg=baz” $uri 不带请求参数的当前URI,$uri包含主机名,”/foo/bar.html” $document_uri 与$uri相同 2.4 if指令与全局变量使用 if判断指令语法

    4K10

    程序员架构学习笔记——Nginx 静态文件服务配置及优化

    要返回索引文件,NGINX 会检查它是否存在,然后对通过将索引文件名称附加到基础 URI 上获得新 URI 进行内部重定向。...内部重定向导致对位置新搜索,并且可能最终位于另一个位置,如以下示例所示: location / { root /data; index index.html index.php; }...尝试几种选择 try_files 指令可用于检查指定文件或目录是否存在; NGINX 会进行内部重定向,如果没有,则返回指定状态代码。...在这种情况下,如果对应于原始 URI 文件不存在,NGINX 会将内部重定向到最后一个参数指定 URI,并返回 /www/data/images/default.gif。...location / { try_files $uri $uri/ $uri.html =404; } 在下一个示例中,如果原始 URI 和带有附加尾部斜杠 URI 都不会解析为现有文件或目录

    1.1K40

    015.Nginx重定向

    重定向概述 1.1 重定向介绍 重定向(Redirect)指通过各种方法将各种网络请求重新定个方向转到其它位置(:网页重定向、域名重定向、路由选择变化也是对数据报文经由路径一种重定向)。...URL重写是指通过配置conf文件,以让网站URL中达到某种状态时则定向/跳转到某个规则,比如常见伪静态、301重定向、浏览器定向等。当客户端浏览某个网址时,将其访问导向到另一个网址技术。...调整或更换Web服务器,网址(域名)又必须要变更(访问目录访问扩展名HTML变为PHP、访问域名),为了能使旧访问依旧生效,从而实现自动重定向到新网站。...1.3 重定向状态码 301:代表永久性转移(Permanently Moved):旧地址A资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容同时也将旧网址交换为重定向之后网址;...18 $request_uri #该变量中存放了当前请求URI,并且带请求指令,即带查询字符串,包含主机名,:”/foo/bar.php?

    6.1K20

    nginx配置 location及rewrite规则详解

    /static/c.png 则优先匹配到 规则C 访问 http://localhost/a.PNG 则匹配规则E, 而不会匹配规则D,因为规则E区分大小写。...访问 http://localhost/a.xhtml 不会匹配规则F和规则G,http://localhost/a.XHTML不会匹配规则G,因为区分大小写。...Rewrite规则 rewrite功能就是,使用nginx提供全局变量或自己设置变量,结合正则表达式和标志位实现url重写以及重定向。...rewrite只能放在server{},location{},if{}中,并且只能对域名后边除去传递参数外字符串起作用,例如 http://seanlook.com/a/we/index.php?...地址栏会显示跳转后地址 permanent : 返回301永久重定向,地址栏会显示跳转后地址 因为301和302不能简单只返回状态码,还必须有重定向URL,这就是return指令无法返回301,302

    2.8K20

    Nginx---Rewrite

    并且拿着/dhy去当前location去重定向访问,接下来要找就是在html/dhy目录下面的index.html页面 nginx有一些默认配置,例如:root没有配置,从当前nginx安装目录下面开始找...,index没有配置就会找安装目录index.html 再次访问,404不见了 发现301永久重定向 break具有终止当前匹配并把当前URI在本location进行重定向访问处理功能...301表示旧地址A资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容同时也将旧网址交换为重定向之后网址; 302表示旧地址A资源还在(仍然可以访问),这个重定向只是临时地从旧地址...如果不加斜杠Nginx服务器内部会自动做一个301重定向重定向地址会有一个指令叫server_name_in_redirect on|off;来决定重定向地址: 如果该指令为on 重定向地址为.../hm如果不加斜杠,那么按照上述规则,如果指令server_name_in_redirect为on,则301重定向地址变为 http://localhost/hm/, 如果为off,则301重定向地址变为

    90810

    Nginx33】Nginx学习:重写更改请求模块

    使用“~”(用于区分大小写匹配)和“~*”(用于区分大小写匹配)运算符将变量与正则表达式匹配。正则表达式可以包含可用于以后在 1.. 9 变量中重用捕获。也可以使用负运算符“!~”和“!...-e 判断,如果访问路径或文件不存在,就使用 rewrite 重写为 /index.php 文件,并且通过正则表达式将请求完整路径内容放到它 s 参数中。...比如这样: location /returntest3/ { return 301 /returntest3/; } 不停 301 到自己,然后形成死循环,这种情况服务端不会报错,错误日志中不会有记录....*)$ /$1; } 将所有 /rewrite2/ 访问,都转到 / 根目录下,第一个测试是指定文件了,这个测试则是完全就跟访问 / 路径一样。 外网跳转也是 OK 。...就相当于是只访问这个有 break rewrite 指定目录或文件,不再走任何 location。

    58930

    Nginx 静态资源访问

    301并且是永久重定向。...permanent 返回 301 永久重定向 break 与 last 都停止处理后续重写规则,只不过 last 会重新发起新请求并使用请求路由匹配location,但 break 不会。...,而对于 302 临时重定向请求则仍然会使用原始网址并且可能会被搜索引擎认为有作弊嫌疑。...如果不加斜杠Nginx 服务器内部会自动做一个 301 重定向重定向地址会有一个指令叫 server_name_in_redirect 来决定重定向地址: 如果该指令为 on 重定向地址为...# 多级域名 当你配置了多级域名,二级域名 xxx.frxcat.fun,并且静态资源目录恰好和二级域名 xxx 可以匹配,则可以使用正则表达式进行匹配,日后,如果又多个 xxx,则再创建对应目录即可

    7.8K20

    如何处理WordPress网站404状态死链

    在大多数情况下,请求可以正常运行,并且您实际上不会看到HTTP状态代码(除非通过开发者工具查看)。但是,如果出现问题,您网络浏览器通常会显示一条带有HTTP状态代码消息,以指示确切问题。...如果访问网站所有内容上均看到此错误,则通常是由于WordPress网站固定链接出现问题。但是,如果仅在单个内容上看到它,则最有可能是因为您在设置重定向情况下更改了目录内容。...但如果你在使用/%post_id%.html格式作为固定链接时发生链接无法访问,可以尝试手动配置Nginx或者Apache,配置参考如下: Nginx伪静态配置 一般目录为/usr/local/nginx...如果在添加重定向情况下移动页面内容或重命名页面URL地址名称,则会丢失指向该页面的反向链接所有域名带来权重。 WordPress默认情况下将尝试重定向更改或者移动内容。...宝塔面板301跳转重定向设置 (3)Nginx或者Apache配置301重定向 当然,如果你对插件设置301重定向,又或者不使用宝塔面板管理服务器,你还可以直接修改Nginx或者APache配置文件来实现

    4.8K10

    Nginx使用经验总结,好记性不比烂笔头(键盘)

    ” $document_root  nginx虚拟主机配置文件中root参数对应值 $document_uri  当前请求中包含指令URI,www.123.com/1.php?...~* 匹配某个区分大小写正则; #下面设定nginx在用户使用ie使用重定向到/nginx-ie目录下: if ($http_user_agent ~ MSIE) { rewrite...-x判断文件是否可执行 #设定nginx在文件和目录不存在时候重定向: if (!...#301重定向,直接带server块内使用,后面的所有指令都不会执行 return 301 https://nicen.cn$request_uri; #输出HTML也行 return 200 "<html...– 重定向到指定链接,返回临时重定向HTTP状态302 permanent – 重定向到指定链接,返回永久重定向HTTP状态301 Set语句 set 指令是用于定义一个变量,并且赋值,可在

    1.3K30

    Nginx实现静态页面,图片分离

    -e $request_filename)        ##正则表达式,匹配缓存目录文件与源文件是否存在,当访问文件和目录不存在时,重定向到某个网站地址或文件                 proxy_pass..., proxy_temp_path  指定缓存在哪个目录下,:proxy_temp_path /var/nginx_cache; 在经过上一步配置之后,虽然文件被缓存到了本地磁盘上,但每次请求仍会向远端拉取文件...redirect : 返回302临时重定向,地址栏会显示跳转后地址 permanent : 返回301永久重定向,地址栏会显示跳转后地址 因为301和302不能简单只返回状态码,还必须有重定向...这里 last 和 break 区别有点难以理解: last一般写在server和if中,而break一般使用在location中 last终止重写后url匹配,即新url会再从server走一遍匹配流程...= ~正则表达式匹配,~*区分大小写匹配,!~区分大小写匹配 -f和!-f用来判断是否存在文件 -d和!-d用来判断是否存在目录 -e和!-e用来判断是否存在文件或目录 -x和!

    79910

    nginxlocation & root & alias & rewrite

    location& root & alias 匹配规则 已=开头表示精确匹配 A 中只匹配根目录结尾请求,后面不能带任何字符串。...所以实际使用中,个人觉得至少有三个匹配规则定义,如下: #直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。...rewrite rewrite功能就是,使用nginx提供全局变量或自己设置变量,结合正则表达式和标志位 实现url重写以及重定向。...rewrite只能放在server{},location{},if{}中,并且只能对域名后边除去传递参数外字符串起作用,例如:http://seanlook.com/a/we/index.php?...permanent : 返回301永久重定向,地址栏会显示跳转后地址 因为301和302不能简单只返回状态码,还必须有重定向URL,这就是return指令无法返回301,302原因了。

    2.7K40

    NginxRewrite重写

    网站换新域名后,让旧域名访问跳转到信息域名上 # 4. 根据特殊变量、目录、客户端信息进行URL跳转等。...redirect: 返回302临时重定向,浏览器地址会显示跳转后URL地址. permanent: 返回301永久重定向,浏览器地址会显示跳转后URL地址....301 http://www.example.com$request_uri; } Example7 # 不同浏览器访问不同结果(实现不同客户端(PC,安卓,IOS))访问不同后端实例 if ($http_user_agent...16> $request_uri # 存放当前请求URI地址,并且带有请求指令(不带网站目录/images/a.jpg) 17> $query_string # 查询字符串...后面一串 18> $scheme # 存放客户端请求使用协议,http,https 19> $server_protocol # 存放客户端请求协议版本, http

    2.8K40

    nginx配置、虚拟主机、负载均衡和反向代理(3)

    我把这张图片expires设置为30天,我们看图中cache-control和Expires看到了,有30天缓存了。说明生效了。我们再看下nginx访问日志: ?...使用符号~*和~模式匹配正则表达式: ~为区分大小写匹配。 ~*区分大小写匹配(firefox匹配FireFox)。 !~和!~*意为“匹配”。 使用-f和!-f检查一个文件是否存在。...不变 redirect - 返回302临时重定向,url会跳转,爬虫不会更新url。...permanent - 返回301永久重定向。url会跳转。爬虫会更新url。...为空 - URL 不会变,但是内容已经变化,也是永久性重定向 上面的正则表达式一部分可以用圆括号,方便之后按照顺序用$1-$9来引用。

    1.2K10

    nginx rewrite伪静态配置参数详解

    nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为区分大小写匹配 * !~和!...~*分别为区分大小写匹配及区分大小写匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!...临时重定向 地址栏会显示跳转后地址 * permanent 返回301永久重定向 地址栏会显示跳转后地址 一些可用全局变量有,可以用做条件判断(待补全) $args $content_length...id=$1 last; 例如下面设定nginx在用户使用ie使用重定向到/nginx-ie目录下: if ($http_user_agent ~ MSIE) { rewrite ^(.*)$ /nginx-ie...$1/ last; rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last; 这样/shanghai 也可以访问了,但页面中相对链接无法使用.

    3.2K50
    领券