У моего приложения CakePHP (v2.5.5) есть динамическая карта сайта, которая использует различные методы для создания ссылок (например, /sitemap/career-center
), а затем передает эти ссылки Router::url($generated_url, true)
,
Моя карта сайта должна быть доступна по URL http://example.com/sitemap
(маршрут по умолчанию) — который работает нормально. Однако по какой-то причине Google находит мою карту сайта по сумасшедшим URL-адресам, таким как:
http://www.example.com/index.php/forums/general/pt-ceus/js/views/jobs/general/img/og/pt-jobs/pt-ceus/general/general/sitemap
У нас даже нет форума нигде в нашей системе, и нет ни одного упоминания о нем. pt-jobs
, pt-ceus
, а также general
все разные разделы нашего сайта. js
, img
и т. д. — это каталоги со статическими активами. Но по какой-то причине, это успешно маршрутизируется к моей карте сайта.
В свою очередь, карта сайта, найденная по этому случайному URL, заполняет каждую ссылку внутри нее одним и тем же тарабарщиной, насыщая инструменты для веб-мастеров 500 ошибками. По какой-то причине карта сайта доступна по этому бессмысленному URL, но сгенерированные ссылки внутри карты сайта, использующие ту же структуру, все выдают ошибки (как и ожидалось).
У меня вопрос такой:
Если вам нужна дополнительная информация, дайте мне знать, и я обновлю эту информацию.
Один из сотрудников обнаружил источник этой проблемы.
Вот информация:
Нажав на URL, например:
http://www.example.com/index.php/sdfasdfjklasdjfkl/x/asdkfjasd/asdfasdfeww/sitemaps/
Дает вам следующее:
[base] => /index.php/sdfasdfjklasdjfkl/x/asdkfjasd/asdfasdfeww
[webroot] => /index.php/sdfasdfjklasdjfkl/x/asdkfjasd/asdfasdfeww/
После проверки файла CakePHP CakeRequest.php обнаружен следующий комментарий:
276 * If CakePHP is called with index.php in the URL even though
277 * URL Rewriting is activated (and thus not needed) it swallows
278 * the unnecessary part from $base to prevent issue #3318.
279 *
280 * @return string Base URL
281 * @link https://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3318
Мы не знаем, что это за проблема # 3318 — но похоже, что «исправление» этой проблемы заставляет работать эти длинные сумасшедшие ссылки. В нашем случае это вызвало отражение этих странных URL-адресов в создаваемой карте сайта.
Примечание. Это не объясняет, как вначале эти сумасшедшие URL-адреса генерируются и достигаются Google, но объясняет, почему они работают.
Нашим решением было просто запретить URL с index.php в них, так как в нашем случае перезапись URL включена.
Других решений пока нет …