Исходя из того, что @MrWhite сказал в комментариях (собираюсь процитировать здесь, потому что комментарии могут быть удалены позже),
Однако «проблема» здесь - WordPress. WP направляет URL-адреса на основе REQUEST_URI, который не изменяется при перезаписи URL-адреса. Так что вам действительно нужно реализовать это в самом WordPress.
Вы, вероятно, просто «сбросите» значение $_SERVER['REQUEST_URI']
в PHP, если оно заканчивается на /index.json
. (Относительно легкая работа со строками / заданием регулярных выражений.)
Оставшаяся проблема заключается в том, чтобы просто найти «правильный» способ сделать это - я думаю, пытаясь сделать это с помощью любых хуков внутри функций темы. php или плагин, может быть слишком поздно. Вы можете попробовать в любом случае, если хотите - порядок крючков, как описано здесь, это то, что я бы go, https://wordpress.stackexchange.com/a/162869
Крюк init
довольно далеко вниз, даже после определения текущего пользователя, et c. - но, возможно, plugins_loaded
или setup_theme
могут подойти для подобных вещей.
Если это не сработает, все же есть несколько возможных альтернатив:
Если вы может повлиять на конфигурацию PHP, auto_prepend_file
позволит вам указать скрипт, который будет автоматически запускаться раньше, чем что-либо еще PHP, чтобы вы могли зафиксировать значение перед индексом. php code даже выполняется.
Вы можете написать свой собственный маленький файл-оболочку, скажем, index2.php
, который фиксирует значение, а затем просто включает исходный index.php
впоследствии. Единственная проблема в этом - вы, вероятно, не захотите менять переписывание WP по умолчанию между комментариями BEGIN и END WORDPRESS в .htaccess, потому что WP перезапишет эту часть, когда вы выполните sh ваши настройки постоянной ссылки. Но дополнительная внутренняя перезапись индекса. php в index2. php после может, вероятно, решить эту проблему.
Если mod_proxy доступен, вы можете прокси-запрос внутри. Возможно, не самый лучший с точки зрения производительности, но, по крайней мере, альтернатива внешнему переписыванию, если вы хотите избежать этого любой ценой.