Я пытаюсь заархивировать свой старый блог на wordpress. Пока что лучший способ, который я нашел, - это использовать wget. Проблема заключается в имени создаваемых им файлов, например "index.html? Cat = 3 & paged = 3.html".
Когда я открываю этот файл в браузере с локального диска, он работает нормально. И когда я помещаю его на свой локальный сервер apache, страница работает нормально. Но когда я помещаю его на другой веб-сервер, перейдя на index.html? Cat = 3 & paged = 3.html, просто отправляю его на index.html.
Я предполагаю, что он делает это, потому что вещи? Cat ... являются своего рода аргументами для index.html, но я не понимаю, почему это происходит на одном сервере, а не на другом.
Что я мог сделать, чтобы обойти эту проблему, так это заменить знак "?" с "_" во всех именах файлов и ссылках в файлах. Тем не менее, мне все еще любопытно, какая конфигурация в конфигурации сервера приведет к тому, что это будет обрабатываться по-другому. (он спросил тайно, надеясь, что это что-то простое, что можно было бы добавить в файл htaccess)
В конце концов я просто переименовал все файлы, заменив "?" с участием "_". Таким образом, index.html? Cat = 3 & paged = 3.html превратился в index.html_cat = 3 & paged = 3.html.
Затем мне пришлось обновить все ссылки в HTML, чтобы отразить имя. Что было легко с regexxer. Не лучшее решение, но оно помогло. Спасибо.
Часть после символа? называется частью запроса URL-адреса и обычно представляет имена и значения переменных, которые веб-сервер передает внешнему сценарию или программе (CGI, сервлет и т. д.).
Я предполагаю, но, возможно, Apache отделяет часть запроса только тогда, когда часть пути сопоставляется с каталогом, для которого включены сценарии (CGI и т.д.) (с использованием ScriptAlias, + ExecCGI и т.д.).