jasonstar 发表于 2016-2-26 18:37:56

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

我现在用的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增加一个这个判断,规则应该怎么写?

麻烦军哥了!

licess 发表于 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;
}

jasonstar 发表于 2016-2-26 22:36:09

回复 2# 的帖子

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

我尝试调换下那2条顺序重启nginx时就会提示 $request_uri != 'portal.php' 这行有错误

jasonstar 发表于 2016-2-26 22:36:56

这个是现在配置

licess 发表于 2016-2-27 09:14:09

回复 4# 的帖子

报什么错误信息?

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

jasonstar 发表于 2016-2-27 13:06:38

回复 5# 的帖子

OK了谢谢军哥!!!!!!!!

jasonstar 发表于 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;
}
}


因为自己网站改版考虑不充分才有了这样的奇葩需求麻烦军哥了

licess 发表于 2016-3-3 20:52:27

目录匹配用location
location ^~ /mobcent/ {
。。。。。
}

jasonstar 发表于 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_passunix:/tmp/php-cgi.sock;
                              fastcgi_index index.php;
                              include fastcgi.conf;
                              #include pathinfo.conf;}

}


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

其他request_uri301到B



感觉我那个conf不对


麻烦军哥了

[ 本帖最后由 jasonstar 于 2016-3-3 21:19 编辑 ]

licess 发表于 2016-3-4 09:12:00

因为有前面两个判断了所有情况无法再进行其他判断
页: [1]
查看完整版本: 军哥求一个带多重判断的301规则