nginx重写规则/关于index.html?page = about

时间:2015-10-27 21:38:45

标签: apache .htaccess mod-rewrite nginx

我的服务器有一些htaccess规则,现在我使用的是nginx而不是apache。

我试图翻译这些规则,我想出了:

location /about { 
  rewrite ^/about\.html$ /index.html?page=about; 
}    
location /archive { 
   rewrite ^/archive\.html$ /index.html?page=archiveindex; 
}
location /sonic1 { 
   rewrite ^/sonic1/index\.html$ /index.html?page=archivegame&game=s1;
}
location /sonic2 { 
   rewrite ^/sonic2/index\.html$ /index.html?page=archivegame&game=s2; 
}
location /sonic3 { 
   rewrite ^/sonic3/index\.html$ /index.html?page=archivegame&game=s3; 
}

由于某些原因,这些规则不起作用

当有人加入我的网站并写道时,长话短说:

/about/about.html我希望将其重定向到此页面/index.html?page=about

这些适用于所有其他规则,如果大约一个将起作用,我将弄清楚如何做其余的规则。

任何帮助都会非常感激!

原始的apache规则:

RewriteRule ^about\.html$ index.html?page=about
RewriteRule ^archive\.html$ index.html?page=archiveindex
RewriteRule ^sonic1/index\.html$ index.html?page=archivegame&game=s1
RewriteRule ^sonic2/index\.html$ index.html?page=archivegame&game=s2
RewriteRule ^sonic3/index\.html$ index.html?page=archivegame&game=s3
RewriteRule ^sonicandknuckles/index\.html$ index.html?page=archivegame&game=sk

1 个答案:

答案 0 :(得分:0)

正如所承诺的,我正在发布我最终为我之前的apache规则(htaccess)提出的nginx规则。

location = /about {
    rewrite ^/about$ /index.html?page=about permanent;
}

location = /archive {
    rewrite ^/archive$ /index.html?page=archiveindex permanent;
}

location = /sonic1 {
    rewrite ^/sonic1$ /index.html?page=archivegame&game=s1 permanent;
}

location = /sonic2 {
    rewrite ^/sonic2$ /index.html?page=archivegame&game=s2 permanent;
}

location = /sonic3 {
    rewrite ^/sonic3$ /index.html?page=archivegame&game=s3 permanent;
}

location = /sonicandknuckles {
    rewrite ^/sonicandknuckles$ /index.html?page=archivegame&game=sk permanent;
}