2016-03-22 4 views
1

Как преобразовать конфигурацию .htaccess в nginx?

Мой .htacess:

Options -MultiViews 
RewriteEngine On 
RewriteBase /mvc/public 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

Я попытался это:

конфигурации Nginx

location /mvc/public/ { 
if (!-e $request_filename){ 
rewrite ^/mvc/public/(.+)$ /mvc/public/index.php?url=$1 [QSA,L]; 
} 
} 

Но это не сработало! Может кто-нибудь мне помочь?Как преобразовать .htaccess в эквивалент nginx?

ответ

0

[QSA,L] не nginx синтаксис - см. this document для деталей.

location /mvc/public/ { 
    if (!-e $request_filename) { 
     rewrite ^/mvc/public/(.+)$ /mvc/public/index.php?url=$1 last; 
    } 
} 

Подобное поведение может быть достигнуто с try_files, а не if:

location /mvc/public/ { 
    try_files $uri $uri/ @rewrite; 
} 
location @rewrite { 
    rewrite ^/mvc/public/(.+)$ /mvc/public/index.php?url=$1 last; 
} 

См this document подробности.