首页 > 解决方案 > 如果 REQUEST_URI 以特定路径开头,.htaccess 重定向并重写 url

问题描述

我在一个 Wordpress 网站上工作,它需要一个需要访问 WP API 端点的插件。

它想要访问该站点的:

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

到底是怎么回事?

问候,

标签: phpwordpressapache.htaccess

解决方案


<Directory>在 .htaccess 上下文与 a或上下文中使用 mod_rewrite<VirtualHost>对模式的解析方式的要求略有不同。对您的情况最重要的是,在 .htaccess 中,第一个参数 toRewriteRule与前导斜杠不匹配,/因为该模式被认为是相对于它所在的目录。

/RewriteRule匹配器参数中删除前导:

RewriteRule ^wp/wp\-json(.*) /wp\-json$1 [L,R]

推荐阅读