2015-12-15 54 views
0

我已在El Capitan OSX 10.11.2上安装rest-api 2.0beta9模块wordpress 4.4Wordpress API在OSX上返回404(固定链接已启用)

我已经改变了/etc/apache2/httpd.conf为我的用户的身份运行,以便它可以轻松地更新Sites文件:

$ cat /etc/apache2/users/jtosey.conf 
<Directory "/Users/jtosey/Sites/"> 
    AddLanguage en .en 
    LanguagePriority en fr de 
    ForceLanguagePriority Fallback 
    Options Indexes MultiViews 
    # required for REST API: 
    AllowOverride All 
    Order allow,deny 
    Allow from localhost 
    Require all granted 
</Directory> 

我:

User jtosey 
Group staff 

我也是在用户的conf启用AllowOverride All改变了我的固定链接,导致.htaccess被创建:

$ cat /Users/jtosey/Sites/wordpress/.htaccess 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /~jtosey/wordpress/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /~jtosey/wordpress/index.php [L] 
</IfModule> 

我可以很容易地卷曲主页:

$ curl http://localhost/~jtosey/wordpress/ 

<!DOCTYPE html> 
<html lang="en-CA" class="no-js"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="profile" href="http://gmpg.org/xfn/11"> 
    <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> 
<title>AAA &#8211; Car Culture</title> 

但是我的API得到404:

$ curl http://localhost/~jtosey/wordpress/wp-json/ 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>404 Not Found</title> 
</head><body> 
<h1>Not Found</h1> 
<p>The requested URL /~jtosey/wordpress/wp-json/ was not found on this server.</p> 
</body></html> 

任何想法?

回答

0

我终于明白了这一点。我错过了Apache配置中的一行。如果你遇到类似的问题,这些都是确切的配置的变化我做得到这个从安装WordPress的REST插件,使得它的工作,除了:

$ diff /etc/apache2/httpd.conf /etc/apache2/httpd.conf~orig 
166c166 
< LoadModule userdir_module libexec/apache2/mod_userdir.so 
--- 
> #LoadModule userdir_module libexec/apache2/mod_userdir.so 
168,169c168,169 
< LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
< LoadModule php5_module libexec/apache2/libphp5.so 
--- 
> #LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
> #LoadModule php5_module libexec/apache2/libphp5.so 
181,183c181,182 
< 
< User jtosey 
< Group staff 
--- 
> User _www 
> Group _www 
259c258 
<  AllowOverride All 
--- 
>  AllowOverride None 
494c493 
< Include /private/etc/apache2/extra/httpd-userdir.conf 
--- 
> #Include /private/etc/apache2/extra/httpd-userdir.conf 
542,554d540 
< # from brew install phpmyadmin 
< Alias /phpmyadmin /usr/local/share/phpmyadmin 
< <Directory /usr/local/share/phpmyadmin/> 
< Options Indexes FollowSymLinks MultiViews 
< AllowOverride All 
< <IfModule mod_authz_core.c> 
<  Require all granted 
< </IfModule> 
< <IfModule !mod_authz_core.c> 
<  Order allow,deny 
<  Allow from all 
< </IfModule> 
< </Directory> 

下一页:

$ cat /etc/apache2/users/jtosey.conf 
<Directory "/Users/jtosey/Sites/"> 
    AddLanguage en .en 
    LanguagePriority en fr de 
    ForceLanguagePriority Fallback 
    # Wordpress - FollowSymLinks required for permalinks 
    Options Indexes MultiViews FollowSymLinks 
    # Wordpress API - required 
    AllowOverride All 
    Order allow,deny 
    Allow from localhost 
    Require all granted 
</Directory> 

而且最后以下,这是由phpadmin创建:

$ cat /Users/jtosey/Sites/wordpress/.htaccess 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /~jtosey/wordpress/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /~jtosey/wordpress/index.php [L] 
</IfModule> 

# END WordPress 

不要忘记:

$ sudo apachectl restart 

完成后。