使用Wordpress博客的Laravel(使用WP API)

时间:2017-04-21 08:16:47

标签: wordpress laravel .htaccess laravel-5

我的progect结构

/root_dir
  /app
  /bootstrap
  ...
  /public
    index.php
      .htaccess
    /wp            #wordpress installation here
      /wp-admin
      /wp-content
      /wp-includes
      index.php
      .htaccess
      ...

所以我想要的是让Laravel项目包含视图,API等

我只需要为一条路线domain.com/blog提供wordpress,我将分开默认的WP博客与我的Laravel应用集成或互动以任何方式

我的/public/.htaccess

<IfModule mod_rewrite.c>
  <IfModule mod_negotiation.c>
    Options -MultiViews
  </IfModule>

  RewriteEngine On

  # Redirect Trailing Slashes If Not A Folder...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)/$ /$1 [L,R=301]

  # Handle Front Controller...

  RewriteCond %{REQUEST_URI} !^(blog) #ADDED ONLY THIS MAGIC LINE

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]

  # Handle Authorization Header
  RewriteCond %{HTTP:Authorization} .
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我的/public/blog/.htaccess是WP默认

它就像一个魅力!

我的lara路线很好...... API路线 - 很好...... WP博客 - 太棒了......

BUT

现在我想调用WP API,例如domain.com/blog/wp-json/wp/v2/posts

我所看到的只是Laravel&#34;未找到&#34;页

请帮忙!

我有一种强烈的感觉,可以用.htacess&#39;魔法&#39;来解决。但不幸的是我在那...

P.S。在此处找到了类似的问题Laravel project next to Wordpress project (in public_html folder) 但我需要相反的解决方案

2 个答案:

答案 0 :(得分:1)

您可以代理将地址http://example.com/blog传递给其他地址, 例如使用nginx:

server {
    listen  80;
    server_name blog.example.com;

    location / {
        root /var/www/wordpress;
        try_files $uri /index.html;
    }

 }





server {
    listen  80;
    server_name example.com www.example.com;

    location / {
        root /var/www/laravel;
        try_files $uri /index.html;
    }


    location /blog/ {

       proxy_pass http://blog.example.com/;
    }
 }

这是一种简单而干净的方式,而且您甚至不需要更改一行代码就可以将laravel和wordpress放在一起。

答案 1 :(得分:0)

圣牛!

解决方案是导航到仪表板/设置/永久链接并将选项从“普通”更改为任何其他选项!

https://wordpress.org/support/topic/rest-api-in-wp-4-7/#post-8620246

找到答案
  

你需要使用漂亮的永久链接来访问/ wp-json /。如果你不是,你可以使用?rest_route = /获取索引,并使用?rest_route = / wp / v2 / posts(例如)获取特定路线。