3204992982 发表于 2018-4-14 16:12:19

nginx重定向,lnmp1.2可以1.4却不行

@军哥
大佬,请教个问题
rewrite^(.*)$/index.php?s=$1last;
带有php的重定向不了

例子:http://www.d.com/news.php

No input file specified.
错误

1.2版本是可以的

Ang 发表于 2018-4-14 19:50:56

nginx官方是支持return 301 这种方式做重定向的

你试试return的方式看?

licess 发表于 2018-4-15 09:05:10

No input file specified. 肯定是你自己修改过网站目录,而没有同步修改 .user.ini 自行官网上搜索 防跨目录设置

3204992982 发表于 2018-4-16 11:18:40

回复 2# 的帖子

不是这个问题,http://www.d.com/news/是可以正常的
我怀疑是
http://www.d.com/news.php   重定向后变成了http://www.d.com/index.php?s=news.php
nginx会去查找   index.php?s=news.php这个文件,所以报文件不存在

正确应该是index.php这个文件,然后把news.php这个参数发送过去

3204992982 发表于 2018-4-16 11:19:50

回复 3# 的帖子

没有修改过目录,都是一模一样的东西

我怀疑是
http://www.d.com/news.php   重定向后变成了http://www.d.com/index.php?s=news.php
nginx会去查找   index.php?s=news.php这个文件,所以报文件不存在

正确应该是index.php这个文件,然后把news.php这个参数发送过去:Q

licess 发表于 2018-4-16 17:11:08

回复 5# 的帖子

你自己规则上就是这么写的,要先判断文件的话 if (!-e $request_filename) 后在rewrite,不明白的话去查哪些已经写好的伪静态是怎么写的

3204992982 发表于 2018-4-17 20:36:25

回复 6# 的帖子

if (!-e $request_filename)有的,rewrite也有的,抱歉没说全

location / {
                if (!-e $request_filename) {
                  rewrite^(.*)$/index.php?s=$1last;
            break;
                }
        }

是一个镜像站

现在通过改程序可以了,news.php改掉后缀名,接收参数后再改回来:L
页: [1]
查看完整版本: nginx重定向,lnmp1.2可以1.4却不行