Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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_Html_Apache_Nginx_Web - Fatal编程技术网

Php 将规则从Apache转换为Nginx

Php 将规则从Apache转换为Nginx,php,html,apache,nginx,web,Php,Html,Apache,Nginx,Web,我已经将服务器从Apache切换到了Nginx 除了最后一点,一切都正常 在Apache中,我有以下规则: RewriteRule ^event/(.*)$ /event.html [L] RewriteRule ^/event/(.*)$ /event.html [L] RewriteRule ^venue/(.*)$ /venue.html [L] RewriteRule ^/venue/(.*)$ /venue.html [L] RewriteRule ^calendar/day/(.*)

我已经将服务器从Apache切换到了Nginx

除了最后一点,一切都正常

在Apache中,我有以下规则:

RewriteRule ^event/(.*)$ /event.html [L]
RewriteRule ^/event/(.*)$ /event.html [L]
RewriteRule ^venue/(.*)$ /venue.html [L]
RewriteRule ^/venue/(.*)$ /venue.html [L]
RewriteRule ^calendar/day/(.*)$ /calendar/day.html [L]
RewriteRule ^/calendar/day/(.*)$ /calendar/day.html [L]
RewriteRule ^calendar/month/(.*)$ /calendar/month.html [L]
RewriteRule ^/calendar/month/(.*)$ /calendar/month.html [L]
但在Nginx中无法正确使用它们。实施情况如下:

location /event {
  rewrite ^/event/(.*)$ /event.html break;
  rewrite ^/event/(.*)$ /event.html break;
}

location /venue {
  rewrite ^/venue/(.*)$ /venue.html break;
  rewrite ^/venue/(.*)$ /venue.html break;
}

location /calendar {
  rewrite ^/calendar/day/(.*)$ /calendar/day.html break;
  rewrite ^/calendar/day/(.*)$ /calendar/day.html break;
  rewrite ^/calendar/month/(.*)$ /calendar/month.html break;
  rewrite ^/calendar/month/(.*)$ /calendar/month.html break;
}
但是当访问上面的内容时,我会被重定向到主页


有人能帮帮我吗?

由于已通过
位置定义了斜杠后的路径,因此斜杠后的路径似乎是重复的。试着简单地说:

location / {
    rewrite ^/event/(.*)$ /event.html last;
    rewrite ^/venue/(.*)$ /venue.html last;
    rewrite ^/calendar/day/(.*)$ /calendar/day.html last;
    rewrite ^/calendar/month/(.*)$ /calendar/month.html last;
}