Я работаю над сайтом Wordpress, для этого требуется плагин, который должен получить доступ к конечной точке API WP.
Он хочет получить доступ к сайту:
http://myhost.test/wp/wp-json/erp/v1/hrm/employees/1\?include\=department,designation,reporting_to,avatar,roles
но изменения в структуре папок приводят к тому, что настоящая и фактическая ссылка должна быть:
http://myhost.test/wp-json/erp/v1/hrm/employees/1\?include\=department,designation,reporting_to,avatar,roles
как видите, в начале /wp не должно быть %{REQUEST_URI}
Я пытаюсь выполнить эту работу: но он не перенаправляет запрос:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/wp/wp\-json/
RewriteRule ^/wp/wp\-json(.*) /wp\-json$1 [L,R]
Я не понимаю, что делаю не так,
Ловлю все после ^/wp/wp-json потом пересылаю на ^/wp-json
Что происходит?
С уважением,
@MichaelBerkowski Да, я думаю, это ответ, не могли бы вы создать это решение, чтобы я мог отметить его как ответ?






Использование mod_rewrite в контексте .htaccess по сравнению с контекстом <Directory> или <VirtualHost> имеет несколько разные требования в том, как анализируются шаблоны. Что наиболее важно для вашей ситуации, в .htaccess первый аргумент RewriteRule не сопоставляется с ведущей косой чертой /, потому что шаблон рассматривается относительно каталога, в котором он находится.
Удалите ведущий / из аргумента сопоставления RewriteRule:
RewriteRule ^wp/wp\-json(.*) /wp\-json$1 [L,R]
Если вы используете это внутри файла .htaccess, удалите ведущий
/из первого аргументаRewriteRule. Я не уверен, что это единственная проблема, но в .htaccess mod_rewrite никогда не получает ведущий/, как это было бы в контексте<Directory>или<VirtualHost>. Он начал бы соответствовать как^wp, а не как^/wp, как вRewriteRule ^wp/wp\-json(.*) /wp\-json$1 [L,R].