Я пытался научиться перезаписывать, делая что-то вроде этого:
^/blog/install/(.*)$ --> /blog/install/index.php?_p=$1
Однако эти переписывания просто продолжали давать сбой, и это было трудно исследовать, поэтому я поискал и нашел rewrite_log on
как подходящую функцию, чтобы помочь мне. Мой error_log в моем блоке сервера установлен на notice
уровень в соответствии с руководством NGINX, однако, где бы я ни разместил rewrite_log on
и перезагрузка никогда не будет записывать ничего, связанное с перезаписью, только ошибки nginx / php!
Я даже пытался установить error_log
к debug
единственная важная информация, которую он мог бы дать мне, - это следующая строка:
2015/12/14 13:46:26 [debug] 17458#0: *4494 http copy filter: 0 "/blog/install/index.php?_p="
2015/12/14 13:46:26 [debug] 17458#0: *4494 http finalize request: 0, "/blog/install/index.php?_p=" a:1, c:1
Однако ничто из окружающего его (включая строки, говорящие о SSL и HTTP-фильтрации) не упоминает, что именно идет после _p=
или все.
Некоторые тесты, которые я использовал для переписывания, я перепробовал множество комбинаций:
location /blog/install {
try_files $uri $uri/ @install;
}
location @install {
fastcgi_pass unix:/var/run/php5-fpm-site_mainsite.sock;
fastcgi_param SCRIPT_FILENAME $document_root/blog/install/index.php;
fastcgi_param QUERY_STRING _p=$uri&$args;
include fastcgi_params;
}
Или что-то вроде ...
location /blog/install {
rewrite ^/blog/install/(.*)$ /blog/install/index.php?_p=$1? last;
}
И все, что связано с этим, однако лучшее, что я могу получить, - это страница без CSS (я предполагаю, что она тоже переписывает файлы, отличные от PHP ...) или следующая кнопка, которая никуда не идет (она отправляет / nextpage / кто знает, пустота), и я не могу отладить это! Есть подсказка?
Вещи, которые я проверил ..
/var/log/nginx/errors.log
упоминает только перезагрузку nginx, когда я использую reload
за свою службу
nginx -V
показывает --with-debug
, если это важно пожимать плечами
Моя текущая конфигурация NGINX для этого:
error_log /home/site_mainsite/log/errorslog.log notice;
rewrite_log on;
И я уверен, что это так переписываю, поскольку только /blog/install
разрешит произвольные пути после него, которых не существует, тогда как / blog / nonexistentblabla выдаст мне 404, но не перезаписывать журналы ..