Я новичок в nginx и хочу перенести свой сайт с Apache на nginx. Мой сайт имеет URL-адреса, такие как:
www.mywebsite.com / категория / продукт / воздушный шар
www.mywebsite.com/category/product/shoe
www.mywebsite.com/information/help
и т.д.
Поскольку я использую PHP, мне нужно переписать все URL-адреса в index.php, за исключением случаев, когда это изображение, ИЛИ если это «поддельный запрос». Мой nginx.config пока что:
#block fake requests
location ~* \.(aspx|jsp|cgi)$ {
return 410;
}
#rewrite all requests if it's not a image
location / {
root html;
index index.php 500.html;
if (!-f $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
}
error_page 404 /index.php;
# serve static files directly
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
access_log off;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME E:/test2/html/$fastcgi_script_name;
include fastcgi_params;
}
Эта конфигурация не работает, потому что:
1. Он не блокирует ложный запрос к файлам .php, и я не могу добавить .php в (aspx | jsp | cgi) $
2. Он не перезаписывает URL-адрес, если файл существует, что является неправильным: он должен обслуживать статические файлы напрямую
, если это определенный тип файла в (jpg | jpeg | gif | css | png | js | ico ) $
Как я могу решить эти проблемы? Я действительно ценю каждый ответ, разъяснение или обратную связь, которую вы можете дать мне.
Спасибо
Mike