2014-09-16 3 views
0

Я провел последние полтора часа, пытаясь получить правильные правила перезаписи, работающие правильно в Nginx, но я ничего не сделаю правильно! Это либо всегда заканчивается в бесконечный цикл перенаправления или 404.Преобразование условий перезаписывания Apache в Nginx

Оригинальный .htaccess был такой:

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !\.(js|ico|txt|gif|jpg|png|css|php) 
RewriteCond %{REQUEST_URI} !=/server-status 
RewriteRule ^(.*)$ index.php/$1/ 

AcceptPathInfo On 

Я установил правильный FastCGI Path Info расколоть параметр (fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;), но я просто не могу «Правильно ли правила правил переадресации/try_files работают правильно!

ответ

0

Похоже, вам нужен классический index.php обработчик, но это только часть конфигурации, может быть, вам нужно больше конфигурации:

server { 
... 

    location/
    { 
    if (!-e $request_filename) { 
     rewrite ^(.*)$ /index.php?$1 last; 
    } 
    } 

    location ~* \.(js|ico|txt|gif|jpg|png|css)$ { 
    expires 31d; 
    access_log off; 
    } 

    location ~ \.php$ { 
    try_files $uri =404; 
    include fastcgi_params; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_pass backend; 
    } 
... 
} 
Смежные вопросы