Моя установка gitweb работает до сих пор, но все сгенерированные ссылки, которые включают в себя запрос, например.URL-адрес Gitweb в строке запроса
host/gitweb?p=somepath&a=summary
как-то искажен. Во-первых, амперсанд заменяется точкой с запятой. При осмотре HTML, ссылка выглядит
host/gitweb?p=somepath;a=summary
Когда или выписка по ссылке, браузер экранирует «;» на «% 3b», так что URL отправляется на сервер выглядит как
host/gitweb?p=somepath%3ba=summary
gitweb.cgi не анализирует это и отображает страницу 404 ошибки. Когда я заменю '% 3b' на ';' или '&', все работает нормально.
Как это можно зафиксировать на стороне сервера?
До сих пор я пытался найти линию, производящую ';' в строках 1457
$href .= "?" . join(';', @result) if scalar @result;
замена ';' по '&' дает мне неправильный xhtml в браузере. Замена его на '& amp;' снова заставляет браузер скрыться от ';' который снова создает сломанные URL-адреса.
Выпуск рода скрытый (я могу просмотреть репозиториев), если установить опцию
$feature{'pathinfo'}{'default'} = [1];
в gitweb.conf файл, но, к сожалению, папки, содержащие несколько хранилищ не могут быть отображены, поскольку соответствующая ссылка использует некоторые параметры запроса.
Re "* браузер избегает ';' до «% 3b» * «Нет». Это не будет законным. – ikegami
Re "* заменить ';' '&' дает мне неправильный xhtml в браузере. * ", У вас есть ошибка внедрения XHTML.Вы забыли избежать текста (URL), который вы встроили в XHTML. '&' необходимо заменить на '&' – ikegami
Замена ';' по '&' тоже не работает, так как снова ';' когда я нажимаю на ссылку. – quantenquatsch