[英]Translating Rules from Apache to Nginx
我已将服务器从 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
定义,似乎斜线后的路径被复制。 试试这个:
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.