1
我需要轉換這個的.htaccess規則nginx的規則:轉換這個阿帕奇重寫規則Nginx的
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ navigation.php
RewriteRule .* - [E=HTTP_X_REQUESTED_WITH:%{HTTP:X-Requested-With}]
我用this在線轉換工具,這給:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/(.*)$ /navigation.php;
}
HTTP_X_REQUESTED_WITH:$http_x_requested_with;
#ignored: "-" thing used or unknown variable in regex/rew
然而結果是不能在nginx 0.76中使用,並且我得到一個錯誤,說
unknown directive "setenv"
而當我消除最後一行在我的nginx配置中,腳本無法顯示某些頁面。
所以,我非常感謝,如果你可以做轉換。
嗯,雖然你關於不使用'if'的觀點是有效的,但是我所關心的是獲得一組工作規則。我不認爲在這一點上最好的nginx語法的問題是一個問題,因爲nginx幾乎不可能是PHP應用程序的瓶頸。不幸的是,你的建議語法給出了一個錯誤,說'HTTP_X_REQUESTED_WITH:$ http_x_requested_with;'是不知道的 – qliq
如果不是'優化'的問題不使用,如果沒有做你期望的事情,它會替換位置......有問題的行是我從你的例子中複製的唯一的,刪除它。你有沒有試過fastcgi_param? – regilero