Вы наверное не в курсе как ведут себя взломщики.
Как только сайт взломан, во все папки как можно отдаленные копируется PHP файл для спама или взлома.
Далее ежедневно обычно в ночное время ближе к утру запускают один из такий файлов из удаленного сервера, который раннее был взломан таким же способом, и рассылают спам.
Так что по логам можно найти 1 или несколько файлов.
Для устранения причины взлома, нужно искать везде и все что не относится к движку, либо удалить все и загрузить новую версию.
Так в этом все и дело, что WP один из самых популярных и поэтому использует достаточно много сайтов. Взломщикам нет ни какого смысла пытаться взломать сайты, которые используют никому не известный движок.
Чем популярней движок, тем больше шансов того, что его будут и возможно когда-то взломают, если вовремя не устанавливать обновления и патчи.
Сайт на голом html практически взломать не возможно, так как нет в нем кода, который бы мог выполниться на сервере.
WP на первом месте по взломам, если его не обновлять вовремя, на втором месте Джумла. Это мой личный опыт за 10 лет предоставления услуг хостинга.
В последнее время атаки на WP только усилились, ежедневно сайты, использующие этот движок, подвергаются атаке.
Лучший движок, это собственный, который никто исследовать не сможет, поэтому для взлома его нет ни какого смысла.
авторизацию можно сделать на всех сайтах, но использовать одну и ту же папку сессий для проверки авторизации.
Если на одном из сайтов уже авторизировались, то перейдя на другой, посетителю не нужно будет авторизироваться заново, так как сессия одна и та же.
PS: все сайты естественно должны находиться в одном аккаунте, так как если аккаунты разные, то невозможно будет сделать общую папку для сессий.
к сожалению, но на PHP невозможно вычислить значение после решетки, так как решетка это сценарий который обрабатывается браузером, а не сервером.
Если это обычный хостинг, а не VDS или DS, обратитесь к своему хостеру, по умолчанию любой из index файлов должен сразу загружаться, приоритет для расширений настраивается на сервере.
На PHP то , что после # не вычислить.
На JavaScript можно , получив значение location.search.substring(1);
Чтобы передать это значение в PHP , можно использовать ajax, а далее уже в PHP получаемый результат добавлять к ссылке в тексте письма.
Для этого не нужен отдельный поддомен, все данные можно хранить в одной базе MySQL
Если используются сессии, то обьединить можно, указав принудительно для всех сайтов общую папку сессий.
Советую вообще запретить пустой поиск, благо Javascript это позволяет для обычных пользователей. А для ботов вообще выводить ничего не нужно.