我有一个与Apache服务器一起运行的角度项目。 apache文档的根是/var/www/angular/dist/my-project
。在此文件夹中,我创建了一个符号链接,该符号链接引用了我安装了wordpress的/var/www/wordpress
目录。在“ 000-default.conf”文件中,我有
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(json|css|gif|ico|jpg|js|png|swf|txt|svg|woff|ttf|eot)$
#added this line to make the wordpress work
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule . /index.html [L]
但是上面的代码不起作用。我总是得到有角度的项目index.html
但是,如果我转到domain.com/blog,它将再次返回index.html。但是,如果我输入任何随机网址,此index.html页不会显示404。
答案 0 :(得分:1)
尽管这可能无法回答您的直接问题,也许我可以提供替代解决方案。
使用Xo for Angular,您可以在现有的Angular App中合并由WordPress驱动的博客,并将其作为集成应用程序使用。
https://wordpress.org/plugins/xo-for-angular/
Xo for Angular可以帮助您编写重写内容,以便通过WordPress或直接为所有前端请求加载Angular主题。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xo-api/(.*)$ /index.php [NC,L]
RewriteRule ^wp-json/(.*)$ /index.php [NC,L]
RewriteRule ^/?$ /wp-content/themes/angular-xo-material/dist/index.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp-content/themes/angular-xo-material/dist/index.html [L]
</IfModule>
文档(正在进行中):https://angularxo.io/
插件github:https://github.com/WarriorRocker/angular-xo-core
示例主题:https://github.com/WarriorRocker/angular-xo-material
应该可以将现有的Angular App复制到新主题,并允许Xo for Angular插件加载并将前端请求定向到Angular索引。然后,您可以使用Xo API检索WordPress中的页面和帖子。如果您决定让Xo和WordPress进行控制,则Xo for Angular也可以生成动态页面路由。
全部披露我是上述插件和主题的作者。
让我知道您是否认为这对您有用,谢谢!