各位大大,问下关于rewrite的问题

By hwqshwq at 2017-07-18 • 1人收藏 • 1647人看过

我在nginx中,将nginx.conf配置到host  ,安装后,可以进入首页,但点击注册的是时候,爆error request 错误,如果将host的nginx.conf的内容去掉,就报404错误。是什么原因呢

17 个回复 | 最后更新于 2017-07-18
2017-07-18   #1

目测粘贴错了地方?

有截图跟完整的Nginx配置文件吗?

2017-07-18   #2

回复#1 @lincanbin :

目前使用的是5.0.1了 ,用

rewrite ^(.*)/favorites(/page/([0-9]+))?$ $1/favorites.php?page=$2 last;
rewrite ^(.*)/forgot$ $1/test.php last;
rewrite ^(.*)/goto/([0-9]+)-([0-9]+)$ $1/goto.php?topic_id=$1&post_id=$2 last;
rewrite ^(.*)/json/([0-9a-z_-]+)$ $1/json.php?action=$1 last;
rewrite ^(.*)/login$ $1/login.php last;
rewrite ^(.*)/manage$ $1/manage.php last;
rewrite ^(.*)/new$ $1/new.php last;
rewrite ^(.*)/notifications$ $1/notifications.php last;
rewrite ^(.*)/oauth-([0-9]+)$ $1/oauth.php?app_id=$1 last;
rewrite ^(.*)/page/([0-9]+)$ $1/index.php?page=$1 last;
rewrite ^(.*)/register$ $1/register.php last;
rewrite ^(.*)/reply$ $1/reply.php last;

这种,目测好了  等搞好了我在试下新的 3q大大

2017-07-18   #3

回复#2 @hwqshwq :

为什么不用新的呢?

2017-07-18   #4

回复#3 @lincanbin :

高了比较长时间,昨天开始安装,在本地apache环境下,一次成功,在nginx上,各种失败。好像是路径的问题,大大,nginx.conf的移植性高不高的?会不会因为有些机不同而不能正常使用

2017-07-18   #5

回复#4 @hwqshwq :

5.9.0版本的,试试这个Nginx规则:

# nginx configuration
location ~ ^/.git {
    return 403;
}
location ~ ^/controller {
    return 403;
}
location ~ ^/docker_resources {
    return 403;
}
location ~ ^/library {
    return 403;
}
location ~ ^/service {
    return 403;
}
location ~ ^/view {
    return 403;
}
location / {
    if ($request_method ~ "^TRACE"){
        return 403;
    }
    if (!-e $request_filename){
        rewrite ^/(.*)/$ /$1 redirect;
    }
    if (!-e $request_filename){
        rewrite ^(.*)$ /index.php break;
    }
}


2017-07-18   #6

回复#5 @lincanbin :

好 那我重新安装下 == 

2017-07-18   #7

回复#5 @lincanbin :

大大 还是不行。blob.png

2017-07-18   #8

回复#7 @hwqshwq :

你能把论坛安装在根目录吗?

就URL不带php_bbs那种= =

2017-07-18   #9

回复#8 @lincanbin :

这个不行,这台机有几个项目一起的。那如果是这种情况,有没有好的解决办法呢

2017-07-18   #10

回复#9 @hwqshwq :

你的Nginx的Rewrite,把你的路径/php_bbs也写进去。

2017-07-18   #11

回复#9 @hwqshwq :

Apache的话,因为配置文件在根目录,我的程序都会直接生成带路径信息的配置文件的。

Nginx的配置文件,因为路径不固定,我的程序无法读写,所以只能自己手动配了。

2017-07-18   #12

回复#11 @lincanbin :

soga  现在我配成 

location / {
    if ($request_method ~ "^TRACE"){
        return 403;
    }
    if (!-e $request_filename){
        rewrite ^/(.*)/$ /php_bbs/$1 redirect;
    }
    if (!-e $request_filename){
        rewrite ^(.*)$ /php_bbs/index.php break;
    }
}


但好像还是不生效。情况和刚刚一样  一些页面报了405 not allow错误


2017-07-18   #13

回复#12 @hwqshwq :

location ^~ /php_bbs {
    root /var/www/example.com;#你的程序路径
    index index.php index.html index.htm;
    try_files $uri $uri/ /php_bbs/index.php;
    #下面是你的PHP的CGI配置,根据自己情况写写
    location ~ \.php {
        fastcgi_split_path_info ^(.*\.php)(.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_pass 127.0.0.1:9000;
    }
}


2017-07-18   #14

回复#13 @lincanbin :我靠  大神  给力啊 总算解决了这个问题。  不过,安装的文档好像好简单。应该说一下 ,可能我太菜了 

2017-07-18   #15

回复#14 @hwqshwq :

PHP项目在Nginx部署,一般就是这样吧。

2017-07-18   #16

回复#14 @hwqshwq :

我想了下,上面那句应该改成:

try_files $uri $uri/ /php_bbs/index.php?$args;


2017-07-18   #17

嗯  刚想说好像有bug  各种 404  我在测试下, 谢谢大大 

登录后方可回帖

登 录
信息栏

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.9.0
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

粤ICP备17135490号-1

Loading...