Re: как настроить простой rewrite

Igor Sysoev igor на sysoev.ru
Вт Фев 9 17:49:31 MSK 2010


On Tue, Feb 09, 2010 at 09:32:22AM -0500, smack87 wrote:

> Использую winxp sp3, php-фреймворк codeigniter, в данный момент структура url выглядит примерно так: http://flashportal.com/index.php?/game/name 
>  
> я же хочу сделать http://flashportal.com/game/name
> тоесть хочу, чтобы оно вставляло после http://flashportal.com/ 
>  
> index.php?/ 
> 
> мне предложили такой вариант, но он не работает:
> 
> worker_processes  1;
> 
> events {
>   worker_connections  1024;
> }
> 
> 
> http {
>     include       mime.types;
>     default_type  application/octet-stream;
> 
>     sendfile        on;
>     keepalive_timeout  65;
> 
> 
> server {
>         listen       80; 
>  
>         server_name  flashportal.com;
>         charset utf-8; 
>  
>         root c:/dev/www/flashportal; 
>  
>         rewrite (.*) /index.php?$1 last; 
>  
>         location / {
>             try_files $uri $uri/ @codeigniter;
>         } 
>  
>         location @codeigniter {
>                   fastcgi_pass   127.0.0.1:9123;
>                   fastcgi_index  index.php;
>                   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
>                   include        fastcgi_params;
>         }
>     }   
> }
> 
> В результате если ввести в IE6 http://flashportal.com/, то мне отдается php-код. Если через google chrome, то этот код скачивается. c:\WINDOWS\system32\drivers\etc\hosts:
> 
> 127.0.0.1 flashportal.com
> 
> Что нужно исправить?

Сначала нужно забыть слово rewrite как страшный сон.
Потом нужно переписать конфигурацию вот так:

         location / {
             try_files $uri $uri/ @codeigniter;
         } 
  
         location @codeigniter {
             fastcgi_pass   127.0.0.1:9123;
             fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
             fastcgi_param  QUERY_STRING     $uri;
             include        fastcgi_params1;
         }

fastcgi_params1 - это копия fastcgi_params, из которой нужно удалить
строку про QUERY_STRING.


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru