本規(guī)則是基于藍海豚導(dǎo)購程序的rewreite規(guī)則。
本人想把如下.htaccess 規(guī)則 轉(zhuǎn)換成 nginx規(guī)則,求助...
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
學(xué)習(xí)是最好的投資!
更準確的提法是:如何把Apache的rewrite規(guī)則轉(zhuǎn)換成nginx的?!?htaccess只是手段不必多提,但涉及的模塊是rewrite才必須強調(diào),因為如果是別的模塊可能nginx會無對應(yīng)功能。
兩種思路:
上面規(guī)則的意思如果URI對應(yīng)的文件或文件夾不存在就進行rewrite。apache的%{REQUEST_FILENAME}在nginx與之對應(yīng)的是$uri,所以你上面的規(guī)則可以用如下的try_files 配置
try_files $uri $uri/ /index.php/$uri&$args;
try_files的作用是按順序檢查文件是否存在,返回第一個找到的文件或文件夾(結(jié)尾加斜線表示為文件夾),如果所有的文件或文件夾都找不到,會進行一個內(nèi)部重定向到最后一個參數(shù)。
$args 表示url中的參數(shù)。
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 ^/(.*)$ /index.php/$1 last;
}
Apache重寫規(guī)則轉(zhuǎn)換為Nginx
http://www.51ask.org/apache2n...
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號