VPS侦探论坛

 找回密码
 注册
查看: 6167|回复: 9

军哥求一个带多重判断的301规则

[复制链接]
发表于 2016-2-26 18:37:56 | 显示全部楼层 |阅读模式

我现在用的301规则就是正常的 如下server {
listen 80;
server_name new.jasonstar.net;
return 301 http://bbs.jasonstar.net$request_uri;
}


我想加一个多重判断,达到的效果是

request_uri 如果是portal.php 跳转到bbs.jasonstar.net/forum.php
                    不是portal.php  就http://bbs.jasonstar.net$request_uri

想给request_uri增加一个这个判断,规则应该怎么写?

麻烦军哥了!
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2016-2-26 21:16:17 | 显示全部楼层


if ($request_uri != 'portal.php' ) {
return 301 http://bbs.jasonstar.net$request_uri;
}
if ($request_uri = 'portal.php' ) {
return 301 http://bbs.jasonstar.net/forum.php;
}
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2016-2-26 22:36:09 | 显示全部楼层

回复 2# 的帖子


依然不启作用
访问portal.php还是 会跳转到新域名的portal.php  request_uri判断没起作用
(已重启服务器,清理浏览器缓存了)

我尝试调换下那2条顺序  重启nginx时就会提示 $request_uri != 'portal.php' 这行有错误
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2016-2-26 22:36:56 | 显示全部楼层



这个是现在配置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2016-2-27 09:14:09 | 显示全部楼层

回复 4# 的帖子


报什么错误信息?

单引号里,portal.php前面加上个/ 就行

军哥运维代购:http://shop63846532.taobao.com/

 楼主| 发表于 2016-2-27 13:06:38 | 显示全部楼层

回复 5# 的帖子


OK了  谢谢军哥!!!!!!!!
 楼主| 发表于 2016-3-3 20:24:16 | 显示全部楼层

回复 5# 的帖子


我自己来挖自己的帖子

我想对多个request_uri 进行判断 .现在是判断一个portal.php

想加一个 如果request_uri=/mobcent/   (mobcent这个里面的东西)   就正常访问此网站目录的文件 不进行301

那应该怎么写这个conf??


现在的conf
server {
listen 80;
server_name new.jasonstar.net;
if ($request_uri != '/portal.php' ) {
return 301 http://bbs.jasonstar.net$request_uri;
}
if ($request_uri = '/portal.php' ) {
return 301 http://bbs.jasonstar.net/forum.php;
}
}


因为自己网站改版考虑不充分  才有了这样的奇葩需求  麻烦军哥了
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2016-3-3 20:52:27 | 显示全部楼层

目录匹配用location
location ^~ /mobcent/ {
。。。。。
}
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2016-3-3 21:17:15 | 显示全部楼层

回复 8# 的帖子


那完整conf是下面这样的??对吗?

server {
listen 80;
server_name new.jasonstar.net;
index index.php index.html index.htm default.html default.htm default.php;
root  /mnt/wwwroot/301.jasonstar.net;

include discuzx.conf;
error_page 404 /404.html;

if ($request_uri != '/portal.php' ) {
return 301 http://bbs.jasonstar.net$request_uri;
}
if ($request_uri = '/portal.php' ) {
return 301 http://bbs.jasonstar.net/forum.php;
}

location ^~ /mobcent/ {
# comment try_files $uri =404; to enable pathinfo
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fastcgi.conf;
                                #include pathinfo.conf;}

}


这样能达到我想要的效果吗?
  resquest_uri 是portal.php   301到A
                       是/mobcent/  正常访问

其他request_uri  301到B



感觉我那个conf不对


麻烦军哥了

[ 本帖最后由 jasonstar 于 2016-3-3 21:19 编辑 ]
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2016-3-4 09:12:00 | 显示全部楼层



因为有前面两个判断了所有情况无法再进行其他判断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-28 23:37 , Processed in 0.028693 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表