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