У меня настроен nginx + php на сервере Windows. Я работаю над фреймворком MVC с перезаписью URL, проблема в том, что мой сервер не разрешает адреса. Проще говоря, это мой код:
server {
listen 127.0.0.1:80;
server_name localhost/kuimbi;
root www/kuimbi;
index index.php;
location / {
if (!-e $request_filename){
rewrite ^(.+)$ /index.php?url=$1 break;
}
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|swf|flv|woff)$ {
access_log off;
expires 9d;
}
location ~* ^.+\.(css|js)$ {
access_log off;
expires 1d;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9100;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
access_log logs/access.log main;
}
А в apache у меня есть эквивалентный код:
Options -MultiViews
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Предполагая, что ваши запросы выглядят так http://localhost/kuimbi/*
, вы неправильно настроили server_name
.
Он не должен содержать URI, только доменные имена.
Итак, ваша конфигурация должна выглядеть так:
server {
listen 127.0.0.1:80;
server_name localhost;
root www/kuimbi;
location ~ ^/kuimbi/(.*)$ {
try_files /www/kuimbi/$1 /index.php?url=/$1;
}
...
}