htaccess的转换让nginx [英] convert htaccess to nginx

查看:292
本文介绍了htaccess的转换让nginx的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有没有运气转换htaccess的规则nginx的重写。我已经签出了NginxRewriteModule文档,并有一些工作要做,但更复杂的人,我在一个损失。下面是我在寻找什么:

 重写规则^ $ /cgi-bin/index.cgi [L]
重写规则([0-9A-ZA-Z] {12}) - 德尔 - ([0-9A-ZA-Z] +)/.+$ /cgi-bin/index.cgi?del=$1-$2 [L ]

的RewriteCond%{} REQUEST_FILENAME!-f

重写规则^([0-9A-ZA-Z] {12})(\ HTML |?)$ /cgi-bin/index.cgi?op=download1&id=$1 [L]
重写规则^([0-9A-ZA-Z] {12})(\ /.+ | \ html的?| $)/cgi-bin/index.cgi?op=download1&id=$1&fname=$2 [L]
重写规则^([0-9A-ZA-Z \ -_] {4,64})/([0-9A-ZA-Z] {12})$ /cgi-bin/index.cgi?op=download1& usr_login = $ 1安培; ID = $ 2 [L]
重写规则^([0-9A-ZA-Z \ -_] {4,64})/([0-9A-ZA-Z] {12})(\ /.+ | \ html的?| $)/的cgi-bin / index.cgi文件OP =下载1&放大器; usr_login = $ 1安培; ID = $ 2及FNAME = $ 3 [L]

#RewriteRule ^经销商\ html的$ /cgi-bin/Templates/Pages/english/Reseller.html [L]
重写规则^ checkfiles \ html的$ /cgi-bin/index.cgi?op=checkfiles [L]
重写规则^接触\ html的$ /cgi-bin/index.cgi?op=contact [L]
重写规则^ premium \ html的$ /cgi-bin/index.cgi?op=payments [L]
重写规则^登录\ html的$ /cgi-bin/index.cgi?op=login [L]
重写规则^目录(。*)\。HTML $ /cgi-bin/index.cgi?op=catalogue&date=$1 [L]
重写规则^新闻([0-9] *)\。HTML $ /cgi-bin/index.cgi?op=news&page=$1 [L]
重写规则^ N([0-9] +) -  * \ HTML $ /cgi-bin/index.cgi?op=news_details&news_id=$1 [L]
重写规则^免费([0-9] +)\。HTML $ /cgi-bin/index.cgi?op=registration&aff_id=$1 [L]
重写规则^用户/([0-9A-ZA-Z \ -_] {4,64})/?([0-9] + | $)/cgi-bin/index.cgi?op=user_public&usr_login= $ 1安培; fld_id = $ 2 [L,NC]
重写规则^ embedmp3  - ([0-9A-ZA-Z] {12})\ HTML $ /cgi-bin/index.cgi?op=mp3_embed&file_$c$c=$1 [L]
重写规则^ embedmp4  - ([0-9A-ZA-Z] {12})\ HTML $ /cgi-bin/index.cgi?op=mp32_embed&file_$c$c=$1 [L]
重写规则^箱$ /cgi-bin/index_box.cgi [L]

的RewriteCond%{} REQUEST_FILENAME!-f
的RewriteCond%{} REQUEST_FILENAME!-d
重写规则^([0-9A-ZA-Z \ -_] {4,64})(/ [^ \ /] * / |?$)$ /cgi-bin/index.cgi?op=user_public&usr_login= $ 1安培; FLD = $ 2 [L,NC]

的RewriteCond%{} REQUEST_FILENAME!-f
重写规则^([A-Z0-9 \  -  \ _] +)HTML /cgi-bin/index.cgi?op=page&tmpl=$1$2 [L]。(*)
 

解决方案

在线工具翻译的Apache的.htaccess Nginx的重写工具包括:

  • http://winginx.com/htaccess
  • <一个href="http://www.anilcetin.com/convert-apache-htaccess-to-nginx/">http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

请注意,这些工具将转换为相当于改写EX pressions 使用如果语句,但他们应该被转换成 try_files 。参见:

  • <一个href="http://wiki.nginx.org/NginxHttpCoreModule#try_files">http://wiki.nginx.org/NginxHttpCoreModule#try_files

I'm having no luck converting htaccess rules to nginx rewrite. I've checked out the NginxRewriteModule documentation and have a few done, but the more complicate ones I'm at a loss for. Here's what I'm looking at:

RewriteRule    ^$                                               /cgi-bin/index.cgi [L]
RewriteRule    ([0-9A-Za-z]{12})-del-([0-9A-Za-z]+)/.+$         /cgi-bin/index.cgi?del=$1-$2 [L]

RewriteCond     %{REQUEST_FILENAME} !-f

RewriteRule    ^([0-9A-Za-z]{12})(\.html?|$)$                   /cgi-bin/index.cgi?op=download1&id=$1 [L]
RewriteRule    ^([0-9A-Za-z]{12})(\/.+|\.html?|$)               /cgi-bin/index.cgi?op=download1&id=$1&fname=$2 [L]
RewriteRule    ^([0-9A-Za-z\-_]{4,64})/([0-9A-Za-z]{12})$   /cgi-bin/index.cgi?op=download1&usr_login=$1&id=$2 [L]
RewriteRule    ^([0-9A-Za-z\-_]{4,64})/([0-9A-Za-z]{12})(\/.+|\.html?|$)        /cgi-bin/index.cgi?op=download1&usr_login=$1&id=$2&fname=$3 [L]

#RewriteRule    ^Reseller\.html$                                         /cgi-bin/Templates/Pages/english/Reseller.html [L]
RewriteRule    ^checkfiles\.html$                                       /cgi-bin/index.cgi?op=checkfiles [L]
RewriteRule    ^contact\.html$                                          /cgi-bin/index.cgi?op=contact [L]
RewriteRule    ^premium\.html$                                          /cgi-bin/index.cgi?op=payments [L]
RewriteRule    ^login\.html$                                            /cgi-bin/index.cgi?op=login [L]
RewriteRule    ^catalogue(.*)\.html$                                    /cgi-bin/index.cgi?op=catalogue&date=$1 [L]
RewriteRule    ^news([0-9]*)\.html$                                     /cgi-bin/index.cgi?op=news&page=$1 [L]
RewriteRule    ^n([0-9]+)-.*\.html$                                     /cgi-bin/index.cgi?op=news_details&news_id=$1 [L]
RewriteRule    ^free([0-9]+)\.html$                     /cgi-bin/index.cgi?op=registration&aff_id=$1 [L]
RewriteRule    ^users/([0-9A-Za-z\-_]{4,64})/?([0-9]+|$)        /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld_id=$2 [L,NC]
RewriteRule    ^embedmp3-([0-9A-Za-z]{12})\.html$   /cgi-bin/index.cgi?op=mp3_embed&file_code=$1 [L]
RewriteRule    ^embedmp4-([0-9A-Za-z]{12})\.html$   /cgi-bin/index.cgi?op=mp32_embed&file_code=$1 [L]
RewriteRule    ^box$                                    /cgi-bin/index_box.cgi [L]

RewriteCond     %{REQUEST_FILENAME} !-f
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteRule    ^([0-9A-Za-z\-_]{4,64})(/[^\/]*/?|$)$            /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld=$2 [L,NC]

RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule    ^([a-z0-9\-\_]+).html(.*)                        /cgi-bin/index.cgi?op=page&tmpl=$1$2 [L]

解决方案

Online tools to translate Apache .htaccess to Nginx rewrite tools include:

Note that these tools will convert to equivalent rewrite expressions using if statements, but they should be converted to try_files. See:

这篇关于htaccess的转换让nginx的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆