Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建从apache到nginx的重写规则_Php_Apache_.htaccess_Mod Rewrite_Nginx - Fatal编程技术网

Php 如何创建从apache到nginx的重写规则

Php 如何创建从apache到nginx的重写规则,php,apache,.htaccess,mod-rewrite,nginx,Php,Apache,.htaccess,Mod Rewrite,Nginx,我刚开始使用nginx,但是我在重写规则方面有问题。 这里有一些我的.htaccess规则 RewriteEngine On ErrorDocument 404 /404.php RewriteRule ^cupinfo/(.*)$ /cup/?cupinfo=$1 [L] RewriteRule ^profile$ /cup/?profile=$1 [L] 我试着像这样在nginx中使用我的重写,但那不起作用,我不知道问题出在哪里。浏览器总是显示404错误。我的网站在“public_ht

我刚开始使用nginx,但是我在重写规则方面有问题。 这里有一些我的.htaccess规则

RewriteEngine On
ErrorDocument 404 /404.php

RewriteRule ^cupinfo/(.*)$ /cup/?cupinfo=$1 [L]

RewriteRule ^profile$ /cup/?profile=$1 [L]
我试着像这样在nginx中使用我的重写,但那不起作用,我不知道问题出在哪里。浏览器总是显示404错误。我的网站在“public_html/cup”目录下,可能有问题

server {
        listen      80;

        server_name localhost;

        location / {
            root home/$2/public_html/cup;
            index index.php;
            try_files $uri $uri/ @rewrite;
        }

        location @rewrite {
            rewrite ^/cupinfo/(.*)$ /cup/?cupinfo=$1 last;
            rewrite ^/profile$ /cup/?profile=$1 last;
        }
}

谢谢

您的
指令中有一个未定义的
$2
,第二个
重写
指令中有一个未定义的
$1
,您正在重写到
public\u html/cup/cup/index.php
,所以您的请求文件名中可能有太多的
/cup/
,但当我转到“localhost/cup/profile”时,nginx还是会说“404notfound”。我们现在在看什么,你的问题还是你的垃圾桶?您希望URI
/cup/profile
找到什么物理文件?