我的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) 但我需要相反的解决方案
答案 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(例如)获取特定路线。