2010-09-13 128 views
0

這是我第一次用nginx重寫, 誰能幫我把那些規則轉換成nginx sintax?重寫apache到nginx

RewriteRule (economics|sport|gossip|aboutus)+$ index.php?section=$1 
RewriteRule (register)+$ $1.php?%{QUERY_STRING} 
RewriteCond %{QUERY_STRING} ^p 
RewriteRule (economics|sport|gossip)/+$ articles.php?section=$1&%{QUERY_STRING} 

謝謝

回答

1
rewrite (economics|sport|gossip|aboutus)$ /index.php?section=$1 last; 

我不確定+的目的是什麼在你的原始正則表達式。這四個詞可以有多於一個嗎?你是否嘗試過匹配其中一個單詞(即問題是「或」部分)?爲什麼「破」而不是「最後」的rewrite directive

rewrite (register)+$ $1.php last; 

再次,我不確定你想用這個正則表達式中的+來完成什麼。你的意思是.+(即「一個或多個任何字符」)?如果是這樣,$是多餘的。正如你寫的那樣,它意味着「一個或多個重複的字符串'register'結束請求字符串。」

+0

謝謝!我不確定:)我在幾年前做過。你可以幫助 p RewriteRule(經濟|運動|八卦)/ + $ articles.php?section = $ 1&%{QUERY_STRING} ? – 2010-09-13 21:37:55

0

在nginx的重寫語法不太完全不同。

rewrite ^/(.*)$ http://www.just1word.com/$1 permanent; 

這是從我已經鋪設的配置文件中取得的。也許它會讓你指向正確的方向。

+0

我試過 rewrite(經濟| sport |八卦| aboutus)+ $ index.php?section = $ 1 break; 沒有運氣 – 2010-09-13 16:20:50