[英]Apache - Nginx Rewrite rule
我堅持使用Apache“重寫”到Nginx轉換。
RewriteCond %{HTTP_HOST} ^new\.app17web\.dev1\.whispir\.net [NC]
RewriteCond %{REQUEST_URI} !^/s/ [NC]
RewriteCond %{REQUEST_URI} !^/jsp/ [NC]
RewriteRule .* /jsp/portal/404/austpost/index.html
RewriteCond %{HTTP_HOST} ^new2\.app17web\.dev1\.whispir\.net [NC]
RewriteCond %{REQUEST_URI} !^/s/ [NC]
RewriteCond %{REQUEST_URI} !^/jsp/ [NC]
RewriteRule .* /jsp/portal/404/austpost/index.html
I have in my Nginx config :
location / {
if ($http_host ~ "^new.app17web.dev1.whispir.net"){
set $rule_0 1$rule_0;
}
if ($uri !~ "^/s/"){
set $rule_0 2$rule_0;
}
if ($uri !~ "^/jsp/"){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite /.* /jsp/portal/404/austpost/index.html;
}
if ($http_host ~ "^new2.app17web.dev1.whispir.net"){
set $rule_0 1$rule_0;
}
if ($uri !~ "^/s/"){
set $rule_0 2$rule_0;
}
if ($uri !~ "^/jsp/"){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite /.* /jsp/portal/404/austpost/index.html;
}
try_files $uri @mainWorker;
}
我的@mainWorker是:
location @mainWorker {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_pass http://mainWorker;
}
我也有一個proxy.conf
underscores_in_headers on;
proxy_intercept_errors on;
proxy_redirect off;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
我得到的是:
禁止您的訪問權限,不允許您訪問此內容。 您請求的信息已不再可用或已過期。 請返回您到達的頁面,或返回Whispir登錄頁面。 如果我沒有重寫,一切正常,但當我加入時,我得到了禁止。
是否有人可以指出我的配置錯誤。
謝謝。 G
我想我發現了這個問題。 位置塊中的if語句指向上游,檢查/jsp/portal/404/austpost/index.html; ,這不是上游,它是Nginx服務器的本地。
所以從位置/塊中取出if語句,一切正常。
做了太多的假設,它是上游到我的Jboss服務器。
謝謝你看。
ATB。
G
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.