mod_rewrite似乎正确重写但没有显示正确的页面?

时间:2015-04-20 11:24:55

标签: apache mod-rewrite

我有以下重写,基本上将请求重写为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'

关于此问题可能导致此问题的任何提示?

0 个答案:

没有答案