У меня есть следующая конфигурация для nginx, URL/website/blog/index.php работы, но URL/website/blog/не делает работ
server {
listen 80;
root /var/www/site;
index index.html index.htm index.php;
server_name site.com;
rewrite_log on
#IMPORTANT
location ~ /.*(\.py|\.ini)$ {
deny all;
}
location ^~ /website/blog/ {
rewrite ^.*$ /website/blog/index.php$request_filename last;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
На Ваш комментарий это на самом деле похоже на него, могли быть проблемы базового синтаксиса. В будущем я был бы сильный предлагать работать nginx -t
(без sudo
) для отображения ошибок конфигурации.
я думаю, файлы попытки предпочтены по перезаписи, но так или иначе, здесь - то, что я использую для сайта Moodle.
location / {
try_files $uri $uri/ /index.php/$request_uri;
}
location ~ .php($|/) {
set $script $uri;
if ($uri ~ "^(.+.php)(/.+)") {
set $script $1;
}
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$script;
fastcgi_temp_file_write_size 10m;
fastcgi_busy_buffers_size 512k;
fastcgi_buffer_size 512k;
fastcgi_buffers 16 512k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_intercept_errors on;
fastcgi_next_upstream error invalid_header timeout http_500;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
, К сожалению, точные правила перезаписи требуют, кажется, изменяется тонко для каждого механизма, но nginx достаточно популярен, что Гугление nginx url <<engine, eg wordpress>>
получит Вас некоторые предложения.