如果 URI 结构是 https://www.zyblog.com.cn/ 的形式,尾部有没有 / 都不会造成重定向。因为浏览器在发起请求的时候,默认加上了 / 。...尾部如果缺少 / 将导致重定向。因为根据约定,URL 尾部的 / 表示目录,没有 / 表示文件。所以访问 /some-dir/ 时,服务器会自动去该目录下找对应的默认文件。...如果访问 /some-dir 的话,服务器会先去找 some-dir 文件,找不到的话会将 some-dir 当成目录,301重定向到 /some-dir/ ,去该目录下找默认文件。...路径的末尾斜杠对访问结果有影响的,有斜杠会认定为是目录,客户端不带斜杠访问会404,而没有斜杠的配置在客户端访问时会进行301跳转到目录再进行访问 root 目录末尾的斜杠和上面测试的报错没有关系,将...这里需要注意的是,如果配置成目录并且访问目录的话,那么只会找别名目录下的 index.html 文件。
匹配的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
今天遇到网站之前的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地址。...五.Nginx的Rewrite规则编写实例 1.当访问的文件和目录不存在时,重定向到某个php文件 if( !...; 这样/shanghai 也可以访问了,但页面中的相对链接无法使用, 如.
内容 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判断指令的语法
要返回索引文件,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.1 重定向介绍 重定向(Redirect)指通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。...URL重写是指通过配置conf文件,以让网站的URL中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态、301重定向、浏览器定向等。当客户端浏览某个网址时,将其访问导向到另一个网址的技术。...调整或更换Web服务器,网址(域名)又必须要变更(如访问目录、访问扩展名HTML变为PHP、访问域名),为了能使旧的访问依旧生效,从而实现自动重定向到新的网站。...1.3 重定向状态码 301:代表永久性转移(Permanently Moved):旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;...18 $request_uri #该变量中存放了当前请求的URI,并且带请求指令,即带查询字符串,不包含主机名,如:”/foo/bar.php?
/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
,并且拿着/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重定向地址变为
301,并且是永久重定向。...permanent 返回 301 永久重定向 break 与 last 都停止处理后续重写规则,只不过 last 会重新发起新的请求并使用新的请求路由匹配location,但 break 不会。...,而对于 302 临时重定向请求则仍然会使用原始的网址并且可能会被搜索引擎认为有作弊的嫌疑。...如果不加斜杠,Nginx 服务器内部会自动做一个 301 的重定向,重定向的地址会有一个指令叫 server_name_in_redirect 来决定重定向的地址: 如果该指令为 on 重定向的地址为...# 多级域名 当你配置了多级域名,如二级域名 xxx.frxcat.fun,并且静态资源目录恰好和二级域名的 xxx 可以匹配,则可以使用正则表达式进行匹配,日后,如果又多个 xxx,则再创建对应的该目录即可
使用“~”(用于区分大小写的匹配)和“~*”(用于不区分大小写的匹配)运算符将变量与正则表达式匹配。正则表达式可以包含可用于以后在 1.. 9 变量中重用的捕获。也可以使用负运算符“!~”和“!...-e 判断,如果访问的路径或文件不存在,就使用 rewrite 重写为 /index.php 文件,并且通过正则表达式将请求完整路径内容放到它的 s 参数中。...比如这样: location /returntest3/ { return 301 /returntest3/; } 不停的 301 到自己,然后形成死循环,这种情况服务端不会报错,错误日志中不会有记录....*)$ /$1; } 将所有 /rewrite2/ 的访问,都转到 / 根目录下,第一个测试是指定文件了,这个测试则是完全的就跟访问 / 路径一样。 外网跳转也是 OK 的。...就相当于是只访问这个有 break 的 rewrite 指定的目录或文件,不再走任何 location。
因此,在server上下文中使用last,而在location上下文中使用break。 和redirect参数一样,只不过直接返回301永久重定向。...默认情况下是不产生的,但在调试的时候可以将其置为on。...-e $request_filename ) { rewrite ^/(.*)$ index.php last; } 当访问的文件和目录不存在时,重定向到某个php文件 示例4 : rewrite ^/....*)$ /ie/$1 break; } 如果客户端使用的是IE浏览器,则重定向到/ie目录下 示例6 location ~ ^/(cron|templates)/ { deny all; break;...; 这样/shanghai 也可以访问了,但页面中的相对链接无法使用, 如.
在大多数情况下,请求可以正常运行,并且您实际上不会看到HTTP状态代码(除非通过开发者工具查看)。但是,如果出现问题,您的网络浏览器通常会显示一条带有HTTP状态代码的消息,以指示确切的问题。...如果访问网站所有内容上均看到此错误,则通常是由于WordPress网站的固定链接出现问题。但是,如果仅在单个内容上看到它,则最有可能是因为您在不设置重定向的情况下更改了目录内容。...但如果你在使用/%post_id%.html格式作为固定链接时发生链接无法访问,可以尝试手动配置Nginx或者Apache,配置参考如下: Nginx伪静态配置 一般目录为/usr/local/nginx...如果在不添加重定向的情况下移动页面内容或重命名页面URL地址名称,则会丢失指向该页面的反向链接的所有域名带来的权重。 WordPress默认情况下将尝试重定向更改或者移动的内容。...宝塔面板301跳转重定向设置 (3)Nginx或者Apache配置301重定向 当然,如果你对插件设置301重定向,又或者不使用宝塔面板管理服务器,你还可以直接修改Nginx或者APache配置文件来实现
” $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 指令是用于定义一个变量,并且赋值,可在
网站换新域名后,让旧的域名的访问跳转到信息的域名上 # 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
-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和!
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的原因了。
而 500 提供了一个 50x.html 在默认的 html 目录下。我们直接来访问试下,先访问一个不存在的静态页面。 然后再访问一个会报 500 错误的 php 页面。...需要注意的是一点是,在访问 php 页面时,需要配置 php 中的参数,保证 fastcgi_intercept_errors是 on 的,否则 Nginx 不会处理 php 的错误信息。...这时,Nginx 会以最后获得的状态码为准。还是拿 404 来测试。...跳转重定向 这里所说的跳转,主要指的就是 301 或者 302 的跳转。...首先,默认值是 off ,在默认的情况下,Nginx 会以请求头中的 Host 字段为基础,其实就是我们访问 URL 的 HOST 部分啦。
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 也可以访问了,但页面中的相对链接无法使用, 如.
我把这张图片的expires设置为30天,我们看图中的cache-control和Expires看到了,有30天的缓存了。说明生效了。我们再看下nginx的访问日志: ?...使用符号~*和~模式匹配的正则表达式: ~为区分大小写的匹配。 ~*不区分大小写的匹配(firefox匹配FireFox)。 !~和!~*意为“不匹配的”。 使用-f和!-f检查一个文件是否存在。...不变 redirect - 返回302临时重定向,url会跳转,爬虫不会更新url。...permanent - 返回301永久重定向。url会跳转。爬虫会更新url。...为空 - URL 不会变,但是内容已经变化,也是永久性的重定向 上面的正则表达式的一部分可以用圆括号,方便之后按照顺序用$1-$9来引用。
/index.php 或者 https://localhost/admin/index.php,但是访问 http://localhost/tz.php 的时候就不会做任何跳转,也就是说 http://...,L] 其中R=301表示Moved Permanently,即告诉搜索引擎或者浏览器下去直接访问后者的地址,如果只是试验性地重定向,可以使用R=302(Found),临时跳转...使用它可以把规范化的URL反馈给客户端,如将"/~"重写为"/u/",或始终对/u/user加上斜杠,等等。 注意:在使用这个标记时,必须确保该替换字段是一个有效的URL。...(比如index.php?)。符号“?”不会在浏览器的地址栏里显示。 11) 用新的格式展示当前URI 如果这就是我们当前正在运行的URLs:/index.php?id=nnnn。...我们非常希望将其更改成/nnnn并且让搜索引擎以新格式展现。首先,我们为了让搜索引擎更新成新的,得将旧的URLs重定向到新的格式,但是,我们还得保证以前的index.php照样能够运行。
领取专属 10元无门槛券
手把手带您无忧上云