weregod
unserializer
Голову сломал, у меня Nginx под Windows, у заказчика под Centos, заказчик выдал правило для конфига:
И скрипт (находящийся в index.php в корне сайта)
у меня при запросе http://test.loc/index.php/foo/bar?arg=value выводит
А у заказчика:
В результате у мну локально роутер дурит и придумывает левый контроллер. Подсказать кто-то может, в чём дело? Или мне не весь location { ... } показали?
Код:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
Код:
server {
listen 127.0.0.1:80;
server_name test.loc;
index index.php index.html index.htm;
root "тут путь";
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ \.php$ {
try_files $uri =404;
include nginx.fastcgi.conf;
include nginx.redis.conf;
fastcgi_pass php_farm;
fastcgi_hide_header X-Powered-By;
}
}
И скрипт (находящийся в index.php в корне сайта)
PHP:
<?php
echo "<pre>";
$keys = [
"PATH_INFO",
"DOCUMENT_URI",
"QUERY_STRING",
"PHP_SELF",
];
foreach ($keys as $key) {
echo sprintf("<b>%s</b>: %s\n", $key, $_SERVER[$key]);
}
Код:
PATH_INFO:
DOCUMENT_URI: /index.php
QUERY_STRING: s=//index.php/foo/bar&arg=value
PHP_SELF:
Код:
PATH_INFO: /foo/bar
DOCUMENT_URI: /index.php/foo/bar
QUERY_STRING: arg=value
PHP_SELF: /index.php/foo/bar