2015-12-15 2 views
0

Я установил модуль rest-api 2.0beta9wordpress 4.4 на El Capitan OSX 10.11.2.Wordpress API возвращает 404 в OSX (постоянные ссылки включены)

Я изменил /etc/apache2/httpd.conf бежать, как мой пользователь, так что он может легко обновить Sites файлы:

User jtosey 
Group staff 

Я также включен AllowOverride All в пользовательском конф:

$ 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> 

И I я изменил свои постоянные связи, которые вызвали .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> 

Но я получаю 404 на API:

$ 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 

Когда вы закончите.

Смежные вопросы