我有以下重写,基本上将请求重写为wordpress插件。它没有像我期望的那样工作,我没有得到我想看到的正确页面。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /foobar/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/([0-9]+) /foobar/wordpress/wp-json/wp/posts/$1 [L]
</IfModule>
rewriteRule工作正如我在php上看到的那样:
[REDIRECT_URL] => /foobar/wordpress/wp-json/wp/posts/1
如果我在浏览器上手动输入,我会得到正确的页面,在这种情况下是一些json数据,因为这是一个宁静的api。
当我尝试使用以下方式访问它时:
/foobar/api/1
它不起作用,但显示一个wordpress页面说Oops! That page can’t be found.
,如果我用php调试它,我得到[REDIRECT_URL] => /foobar/wordpress/wp-json/wp/posts/1
,这是我手动放入浏览器的相同URL正确的数据。
它可能是相关的,但我在wordpress目录
上有以下重写# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /foobar/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /foobar/wordpress/index.php [L]
</IfModule>
# END WordPress
检查日志,我可以看到重写似乎很好看:
[Mon Apr 20 11:44:43.989509 2015] [rewrite:trace2] [pid 8056:tid 1692] mod_rewrite.c(475): [client 127.0.0.1:62897] 127.0.0.1 - - [magnolia/sid#445888][rid#2544ba8/initial] [perdir C:/xampp/htdocs/foobar_site/] rewrite 'api/12' -> '/wordpress/wp-json/wp/posts/12'
关于此问题可能导致此问题的任何提示?