.htaccess如果REQUEST_URI以特定路径开头,则重定向并重写url

时间:2018-08-01 02:31:51

标签: php wordpress apache .htaccess

我在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

这是怎么回事?

此致

1 个答案:

答案 0 :(得分:1)

在.htaccess上下文和<Directory><VirtualHost>上下文中使用mod_rewrite对模式的解析都有各自不同的要求。对您而言,最重要的是,在.htaccess中,RewriteRule的第一个参数与斜杠/不匹配,因为该模式是相对于其所在目录而言的。

从您的/匹配器参数中删除前导RewriteRule

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