php - 如果 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
到底是怎么回事?
问候,
解决方案
<Directory>
在 .htaccess 上下文与 a或上下文中使用 mod_rewrite<VirtualHost>
对模式的解析方式的要求略有不同。对您的情况最重要的是,在 .htaccess 中,第一个参数 toRewriteRule
与前导斜杠不匹配,/
因为该模式被认为是相对于它所在的目录。
/
从RewriteRule
匹配器参数中删除前导:
RewriteRule ^wp/wp\-json(.*) /wp\-json$1 [L,R]
推荐阅读
- javascript - 试图从两组字符之间提取数据
- sql-server - DATEPART missing months
- sql - Postgres 使用窗口函数计算差异
- javascript - 鼠标悬停在 iframe 上时父页面不滚动
- sql - PLSQL 语句执行但没有得到输出
- python - 如何在 HTTP GET 请求中正确设置 url 的输入参数?
- python - ImportError:没有名为 absl.testing 的模块
- python - 每秒多次调用 Python 的 reload 的缺点
- go - 如何模拟调用同一结构的另一个方法的结构的方法
- php - 有没有办法将 react with 合并到现有的 laravel 5.2 应用程序中?