簡體   English   中英

將Apache重寫規則轉換為Nginx

[英]Converting apache rewrite rules to nginx

我想將一些Apache規則轉換為Nginx。

Apache規則

deny from 127.1.1.4    
deny from 127.1.1.1
RewriteEngine on
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\-_]*)/?([0-9A-Za-z]{12})(/[^\/]*|)(\.html?|$)$  /cgi-bin/index.cgi?op=download1&usr_login=$1&id=$2&fname=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule    ^([0-9A-Za-z\-_]+)(/[0-9a-z\-_]*/?|$)$       /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld=$2 [L,NC]
RewriteRule    ^latest-files(\d*).html$             /cgi-bin/index.cgi?op=catalogue&page=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^([a-z0-9\-\_]+).html(.*)            /cgi-bin/index.cgi?op=page&tmpl=$1$2 [L]
ErrorDocument 404 /404.html

和nginx規則

rewrite ^/free([0-9]+)\.html$ /cgi-bin/index.cgi?op=registration&aff_id=$1 last;
rewrite  ^/(checkfiles|contact|login|links)\.html$ /cgi-bin/index.cgi?op=$1 last;
rewrite ^/premium\.html$ /cgi-bin/index.cgi?op=payments last;
rewrite ^/catalogue(.*)\.html$ /cgi-bin/index.cgi?op=catalogue&date=$1 last;
rewrite ^/news([0-9]*)\.html$ /cgi-bin/index.cgi?op=news&page=$1 last;
rewrite ^/n([0-9]+)-.*\.html$ /cgi-bin/index.cgi?op=news_details&news_id=$1 last;
rewrite ^/(faq|tos)\.html$ /cgi-bin/index.cgi?op=page&tmpl=$1 last;
rewrite "^/(?!tmp/)([0-9A-Za-z]{12})(\/.+|\.html?|$)" /cgi-bin/index.cgi?op=download1&id=$1&fname=$2 last;
rewrite "^/users/([0-9A-Za-z\-_]{4,64})/?([0-9]+|$)" /cgi-bin/index.cgi?op=user_public&usr_login=$1&fld_id=$2 last;
rewrite ^/pages/([a-z0-9\-\_]+).html /cgi-bin/index.cgi?op=page&tmpl=$1 last;

location / {
     root   /etc/nginx/html;
     index  index.html index.htm;
     rewrite ^  /cgi-bin/index.cgi last;
}

Nginx規則有問題(例如:images / *和CSS文件“鏈接”到index.cgi)

關於什么可能是錯的任何想法?

您只需要:

location = / { root /etc/nginx/html; index index.html index.htm; rewrite ^ /cgi-bin/index.cgi last; }

location /表示以/開頭的任何內容

location = /表示/

請訪問以下網站,該網站可能會幫助您完成任務:

http://winginx.com/cn/htaccess

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM