Updatedb включает путь, на который указывает символическая ссылка

Это будет связано с архитектурой WordPress. Когда вы переходите к /wp-login, Apache не загружает сначала wplogin. Вместо этого правила перезаписи используются для перезаписи URL-адреса.

Внезапно я не могу вспомнить точку входа, но из Apache вызывается другой файл PHP с wp-логином в качестве аргумента.

Затем этот другой файл PHP включает wp -login.php. Apache не может это контролировать.

Эти правила часто хранятся в файле.htaccess.

Чтобы доказать это, вы можете временно запретить Apache использовать файлы.htaccess и отключить все остальные правила перезаписи.

Для постоянного решения вы можете настроить правила перезаписи, чтобы отклонить или игнорировать wp -login.php с добавленными условиями.

0
09.06.2020, 12:33
1 ответ

Используя эту реализацию plocate с updatedb в ней, можно создать пользовательскую версию для перехода по символическим ссылкам. Я не знаю, отвечает ли это на вопрос также для mlocate, я использую только plocate.

Если вы уверены, что в вашей файловой системе не будет циклов, вы можете просто заменить код

e.is_directory = (de->d_type == DT_DIR);

по

e.is_directory = (de->d_type == DT_DIR) || (de->d_type == DT_LNK); // or even just true

в файле updatedb.cpp.

Если у вас могут быть циклы, вот решение (, возможно, не очень эффективное ). Всегда в updatedb.cppобъявляйте глобальную переменную vector<char*> explored;непосредственно перед функцией int scan(...). Затем добавьте следующий код после двух первых тестов в этой функцииscan:

char buf[PATH_MAX];
realpath(path.c_str(),buf);
for (auto &e : explored)
  if (strcmp(e,buf) == 0)
    return 0;
explored.push_back(buf);

И непосредственно перед каждым returnэтой функции добавьте explored.pop_back();.

С подобными модификациями кода можно переходить по символическим ссылкам только внутри определенных каталогов и/или полностью исключать некоторые каталоги базы данных, в зависимости от необходимости. Также весьма полезно сделать результаты кликабельными .

0
20.05.2021, 13:18

Теги

Похожие вопросы