Я только что развернул недавно созданный веб-сайт, на котором запущены Laravel 5 и nginx, и изо всех сил пытается настроить мою конфигурацию nginx на 301, перенаправить некоторые старые URL-адреса, в частности, с расширениями .php.Конфигурация Nginx/Laravel для перенаправления с маршрута non index.php
Я ищу 301 перенаправлять ниже ...
domain.com/foobar.php?id=123 -> domain.com/foobar/123
по умолчанию конфигурации принимает все работает от index.php, так Laravel не срабатывает на foobar.php.
Я попытался добавить следующее правило перезаписи, но это не вызывает (я предполагаю, потому что Nginx не слушать для запросов foobar.php?
rewrite ^/foobar.php(.*)$ /foobar/$1/ permanent;
Соответствующего фрагмента моей текущей Nginx конфигурации ниже ...
server {
listen 443 ssl;
server_name domain.com;
root /home/domain.com/public;
index index.html index.htm index.php;
charset utf-8;
if ($request_method = GET) {
rewrite ^([^.]*[^/])$ $1/ permanent;
}
location/{
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/domain.com-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
'rewrite' не * видеть * строку запроса. Вам понадобится другой трюк, чтобы переместить строку запроса в информацию о пути. На этот вопрос был дан ответ: http://serverfault.com/questions/488444/nginx-rewrite-convert-querystring-to-path –