Преобразование сайта переписывания PHP в nginx и PHP5-FPM

Я размещаю сайт для клиента на своих виртуальных серверах, на которых в настоящее время работает Apache2. Я очень хочу переключиться на nginx а также php5-fpm, но у меня есть проблемы с преобразованием сайта .htaccess файл правильно. (Я не создал сайт или .htaccess Я, и, чтобы сделать вещи более интересными, он также переписывает URL.

Итак .htaccess файл выглядит так:

RewriteEngine on
RewriteRule ^search.php(/|$) - [L,NC]
RewriteRule ^admin(/|$) - [L,NC]
RewriteRule ^blog/author/([^/\.]+)/? index.php?page=blog&filter=author&query=$1 [L,QSA]
RewriteRule ^blog/date/([^/\.]+)/([^/\.]+)/? index.php?page=blog&filter=date&year=$1&month=$2 [L,QSA]
RewriteRule ^blog/date/([^/\.]+)/? index.php?page=blog&filter=date&year=$1 [L,QSA]
RewriteRule ^blog/article/([^/\.]+)/? index.php?page=blog&newsId=$1 [L,QSA]
RewriteRule ^blog/([^/\.]+)/?$ index.php?page=blog&list=$1 [L,QSA]
RewriteRule ^blog/$ index.php?page=blog [L,QSA]
RewriteRule ^download/([^/\.]+) download.php?id=$1 [L]
RewriteRule ([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&sub=$2 [L,QSA]
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L,QSA]

Мне удалось получить сайт около работает в nginx со следующим конфигом:

server {
listen 80;
server_name the-website-com;

# Tell Nginx and Passenger where your app's 'public' directory is
root /home/web;
index index.php;

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

location /blog {
rewrite ^/blog/author/([^/\.]+)/? /index.php?page=blog&filter=author&query=$1 last;
rewrite ^/blog/date/([^/\.]+)/([^/\.]+)/? /index.php?page=blog&filter=date&year=$1&month=$2 last;
rewrite ^/blog/date/([^/\.]+)/? /index.php?page=blog&filter=date&year=$1 last;
rewrite ^/blog/article/([^/\.]+)/? /index.php?page=blog&newsId=$1 last;
rewrite ^/blog/([^/\.]+)/?$ /index.php?page=blog&list=$1 last;
}
location = /blog {
rewrite ^(.*)$ /index.php?page=blog last;
}
location /download {
rewrite ^/download/([^/\.]+) /download.php?id=$1 last;
}
location / {
rewrite ([^/\.]+)/([^/\.]+)/?$ /index.php?page=$1&sub=$2 last;
rewrite ^/([^/\.]+)/?$ /index.php?page=$1 last;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /opt/nginx/conf/fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

}

Это заставляет некоторые сайты работать. Например, /contact-us хорошо, но по какой-то причине /our-approach идет совершенно не так и пытается загрузить файл PHP вместо того, чтобы рендерить его.

Я парень из Rails и немного нуб, когда дело доходит до прокси в PHP nginx, Любая помощь очень ценится!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]