Это будет связано с архитектурой WordPress. Когда вы переходите к /wp-login
, Apache не загружает сначала wplogin. Вместо этого правила перезаписи используются для перезаписи URL-адреса.
Внезапно я не могу вспомнить точку входа, но из Apache вызывается другой файл PHP с wp-
логином в качестве аргумента.
Затем этот другой файл PHP включает wp -login.php. Apache не может это контролировать.
Эти правила часто хранятся в файле.htaccess.
Чтобы доказать это, вы можете временно запретить Apache использовать файлы.htaccess и отключить все остальные правила перезаписи.
Для постоянного решения вы можете настроить правила перезаписи, чтобы отклонить или игнорировать wp -login.php с добавленными условиями.
Используя эту реализацию 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();
.
С подобными модификациями кода можно переходить по символическим ссылкам только внутри определенных каталогов и/или полностью исключать некоторые каталоги базы данных, в зависимости от необходимости. Также весьма полезно сделать результаты кликабельными .