全球主机交流论坛

标题: 求一个nginx 404 跳转规则 [打印本页]

作者: taoke    时间: 2012-7-28 17:03
标题: 求一个nginx 404 跳转规则
实现目标:
当用户访问 http://xxx.com/attachment/ 目录时,如果文件或目录 不存在(404),则跳转到 http://baidu.com/attachment/ 访问.

自己摸索是这样实现的.但是和伪静态有点冲突.请高手指点.

if (!-e $request_filename) {
                     rewrite ^/(.*)$ http://baidu.com/$1 permanent;
                }
作者: lazyzhu    时间: 2012-7-28 17:10
试一下这个:
location ~* ^/(attachment)/ {
     try_files $uri $uri/ http://baidu.com/$1/ =404;
}

不行再改

作者: iyuheng    时间: 2012-7-28 17:14
不会,帮顶
作者: 每次醒来    时间: 2012-7-28 17:16
本帖最后由 每次醒来 于 2012-7-28 17:17 编辑
  1.         location / {
  2.                 root    /var/保密/保密/;
  3. error_page 404 /404.html;
复制代码
我的是这个
error_page 404 /404.html             //404.html放在网站根目录


作者: taoke    时间: 2012-7-28 17:18
lazyzhu 发表于 2012-7-28 17:10
试一下这个:
location ~* ^/(attachment)/ {
     try_files $uri $uri/ http://baidu.com/$1/ =404;

用了以后,貌似不会跳转.

然后学习了一下你的设置.和我贴出的代码放一起实现了~
作者: lazyzhu    时间: 2012-7-28 17:24
taoke 发表于 2012-7-28 17:18
用了以后,貌似不会跳转.

然后学习了一下你的设置.和我贴出的代码放一起实现了~ ...

你pm我网址
我看看能不能不用if就实现

作者: lazyzhu    时间: 2012-7-28 17:34
下面这种方法最好:
location /attachment/ {
  error_page     404 = @mjj;
}
location @mjj {
  return 301 http://baidu.com/;
}





欢迎光临 全球主机交流论坛 (https://loc.193.gs/) Powered by Discuz! X3.4